NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkMammogramAnalysis.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkMammogramAnalysis_h
16 #define itkMammogramAnalysis_h
17 
18 #include <iostream> // std::cout, std::fixed
19 #include <iomanip> // std::setprecision
20 
21 #include <itkObject.h>
22 #include <itkImage.h>
23 
24 #include <itkImageFileReader.h>
25 #include <itkPointSet.h>
26 #include <itkVector.h>
27 #include <itkImageRegionIterator.h>
28 #include <itkImageRegionIteratorWithIndex.h>
29 #include <itkPolygonSpatialObject.h>
30 
31 #include <itkTransformFileWriter.h>
32 #include <itkImageMomentsCalculator.h>
33 
36 
37 #include <itkMetaDataDictionary.h>
38 #include <itkMetaDataObject.h>
39 
40 #include <boost/random/mersenne_twister.hpp>
41 
42 
53 namespace itk
54 {
55 
56 
57 
58 // -----------------------------------------------------------------------------------
59 // Class to handle the boundary points i.e. pectoral muscle and breast edge
60 // -----------------------------------------------------------------------------------
61 
63 {
64 public:
65  int id;
66  int x;
67  int y;
68 
70  id = 0;
71  x = 0;
72  y = 0;
73  }
74 
75  PointOnBoundary(int idIn, int xIn, int yIn) {
76  id = idIn;
77  x = xIn;
78  y = yIn;
79  }
80 
82  return sqrt(static_cast<double>( (x - c.x)*(x - c.x) + (y - c.y)*(y - c.y) ) );
83  }
84 
85  void Print( const char *indent ) {
86  std::cout << indent
87  << std::right << std::setw(6) << id << ": "
88  << std::right << std::setw(6) << x << ", "
89  << std::right << std::setw(6) << y << std::endl;
90  }
91 
92 };
93 
94 
95 // -----------------------------------------------------------------------------------
96 // Class to handle a region or patch in the image
97 // -----------------------------------------------------------------------------------
98 
99 class Patch
100 {
101 public:
102 
103  Patch() {
104  iPatch = 0;
105  jPatch = 0;
106 
107  nPixels = 0;
108  nDensePixels = 0;
109  sumXindices = 0;
110  sumYindices = 0;
111  }
112 
113  void SetCoordinate( int i, int j ) {
114  iPatch = i;
115  jPatch = j;
116  }
117 
118  void GetCoordinate( int &i, int &j ) {
119  i = iPatch;
120  j = jPatch;
121  }
122 
123  void AddDensePixel( float xIndex, float yIndex ) {
124  nDensePixels++;
125  nPixels++;
126  sumXindices += xIndex;
127  sumYindices += yIndex;
128  }
129 
130  void AddNonDensePixel( float xIndex, float yIndex ) {
131  nPixels++;
132  sumXindices += xIndex;
133  sumYindices += yIndex;
134  }
135 
136  float GetNumberOfPixels( void ) { return nPixels; }
137  float GetNumberOfDensePixels( void ) { return nDensePixels; }
138 
139  void GetCenter( float &xIndex, float &yIndex ) {
140  if (nPixels > 0) {
141  xIndex = sumXindices/nPixels;
142  yIndex = sumYindices/nPixels;
143  }
144  else {
145  xIndex = 0;
146  yIndex = 0;
147  }
148  }
149 
150  void Print( const char *indent, float maxNumberOfPixels ) {
151  float xCenter, yCenter;
152  GetCenter( xCenter, yCenter );
153  std::cout << indent
154  << "index: (" << std::setw(4) << iPatch
155  << ", " << std::setw(4) << jPatch << ") "
156  << "center: (" << xCenter << ", " << yCenter << ") "
157  << indent
158  << "no. of dense pixels: "
159  << std::right << std::setprecision( 6 ) << std::setw(12) << nDensePixels << " ( "
160  << std::fixed << std::setprecision( 2 )
161  << std::right << std::setw(7) << 100.*nDensePixels/nPixels << "% )";
162 
163  std::cout.unsetf( std::ios_base::fixed );
164 
165  std::cout << indent
166  << "no. of pixels in patch: "
167  << std::right << std::setprecision( 6 ) << std::setw(12) << nPixels << " ( "
168  << std::fixed << std::setprecision( 2 )
169  << std::right << std::setw(7) << 100.*nPixels/maxNumberOfPixels << "% )"
170  << std::setprecision( 0 ) << std::endl;
171 
172  std::cout.unsetf( std::ios_base::fixed );
173  }
174 
175 protected:
176 
177  int iPatch;
178  int jPatch;
179 
180  float nPixels;
182  float sumXindices;
183  float sumYindices;
184 
185 };
186 
187 
188 // -----------------------------------------------------------------------------------
189 // Class to store the data for diagnostic and pre-diagnostic images of a patient
190 // -----------------------------------------------------------------------------------
191 
192 template <class InputPixelType, unsigned int InputDimension=2>
193 class ITK_EXPORT MammogramAnalysis
194  : public Object
195 {
196 public:
197 
199  typedef Object Superclass;
200  typedef SmartPointer<Self> Pointer;
201  typedef SmartPointer<const Self> ConstPointer;
202 
203  itkNewMacro(Self);
204  itkTypeMacro(MammogramAnalysis, Object);
205 
206  itkStaticConstMacro( ParametricDimension, unsigned int, 2 );
207  itkStaticConstMacro( DataDimension, unsigned int, 1 );
208 
209  typedef itk::Image< InputPixelType, InputDimension > ImageType;
210  typedef itk::ImageFileReader< ImageType > ReaderType;
211  typedef itk::ImageRegionIterator< ImageType > IteratorType;
212  typedef itk::ImageRegionIteratorWithIndex< ImageType > IteratorWithIndexType;
213 
214  typedef unsigned int LabelPixelType;
216 
217  typedef short int OutputPixelType;
218  typedef itk::Image< OutputPixelType , InputDimension > OutputImageType;
219 
220  typedef itk::MetaDataDictionary DictionaryType;
221  typedef itk::MetaDataObject< std::string > MetaDataStringType;
222 
223  typedef float RealType;
224 
225  typedef itk::Vector<RealType, DataDimension> VectorType;
226  typedef itk::Image<VectorType, ParametricDimension> VectorImageType;
227  typedef itk::PointSet<VectorType, ParametricDimension> PointSetType;
228 
229  typedef itk::Image< RealType, InputDimension > RealImageType;
230  typedef itk::Image<unsigned char, InputDimension> ImageTypeUCHAR;
231 
232 
233  typedef typename PointSetType::PointsContainer PointsContainer;
234  typedef typename PointsContainer::Iterator PointsIterator;
235  typedef typename PointSetType::PointDataContainer PointDataContainer;
236  typedef typename PointDataContainer::Iterator PointDataIterator;
237 
238  typedef itk::PolygonSpatialObject< InputDimension > PolygonType;
239 
242 
244 
245 
246  // Setup objects to build registration.
247 
248  typedef typename itk::ImageMomentsCalculator< ImageType > ImageMomentCalculatorType;
249  typedef typename itk::SignedMaurerDistanceMapImageFilter< ImageType, RealImageType> DistanceTransformType;
250 
252 
254 
256  void SetTypeOfInputImagesToRegister( enumRegistrationImagesType regImagesType ) {
257  m_TypeOfInputImagesToRegister = regImagesType;
258  }
259 
261  {
265  CONTROL_MAMMO
266  };
267 
268  const static char* MammogramTypeNames[];
269 
271  {
274  PECTORAL
275  };
276 
277  void SetPatientID( std::string idPatient ) { m_Id = idPatient; }
278 
279  void SetInputDirectory( std::string dirIn ) { m_DirInput = dirIn; }
280  void SetOutputDirectory( std::string dirOut ) { m_DirOutput = dirOut; }
281 
282  void SetIDDiagnosticImage( std::string idDiagImage ) { m_IdDiagnosticImage = idDiagImage; }
283  void SetIDPreDiagnosticImage( std::string idPreDiagImage ) { m_IdPreDiagnosticImage = idPreDiagImage; }
284  void SetIDControlImage( std::string idControlImage ) { m_IdControlImage = idControlImage; }
285 
286  void SetFileDiagnostic( std::string fileDiag ) { m_FileDiagnostic = fileDiag; }
287  void SetFilePreDiagnostic( std::string filePreDiag ) { m_FilePreDiagnostic = filePreDiag; }
288  void SetFileControl( std::string fileControl ) { m_FileControl = fileControl; }
289 
290  void SetTumourID( std::string strTumID ) { m_StrTumourID = strTumID; }
291  void SetTumourImageID( std::string strTumImageID ) { m_StrTumourImageID = strTumImageID; }
292 
293  void SetSetNumberDiagnostic( int thrDiag ) { m_SetNumberDiagnostic = thrDiag; }
294  void SetSetNumberPreDiagnostic( int thrPreDiag ) { m_SetNumberPreDiagnostic = thrPreDiag; }
295  void SetSetNumberControl( int thrControl ) { m_SetNumberControl = thrControl; }
296 
297  void SetThresholdDiagnostic( int thrDiag ) { m_ThresholdDiagnostic = thrDiag; }
298  void SetThresholdPreDiagnostic( int thrPreDiag ) { m_ThresholdPreDiagnostic = thrPreDiag; }
299  void SetThresholdControl( int thrControl ) { m_ThresholdControl = thrControl; }
300 
301  void SetBreastAreaDiagnostic( int thrDiag ) { m_BreastAreaDiagnostic = thrDiag; }
302  void SetBreastAreaPreDiagnostic( int thrPreDiag ) { m_BreastAreaPreDiagnostic = thrPreDiag; }
303  void SetBreastAreaControl( int thrControl ) { m_BreastAreaControl = thrControl; }
304 
305  void SetTumourLeft( int tumLeft ) { m_TumourLeft = tumLeft; }
306  void SetTumourRight( int tumRight ) { m_TumourRight = tumRight; }
307  void SetTumourTop( int tumTop ) { m_TumourTop = tumTop; }
308  void SetTumourBottom( int tumBottom ) { m_TumourBottom = tumBottom; }
309 
310  void SetTumourDiameter( float diameter ) { m_TumourDiameter = diameter; }
311 
312  void SetRegionSizeInMM( float roiSize ) { m_RegionSizeInMM = roiSize; }
313 
314  void SetRegisterOn( void ) { m_FlgRegister = true; }
315  void SetRegisterOff( void ) { m_FlgRegister = false;
316  m_FlgRegisterNonRigid = false; }
317 
318  void SetVerboseOn( void ) { m_FlgVerbose = true; }
319  void SetVerboseOff( void ) { m_FlgVerbose = false; }
320 
321  void SetOverwriteOn( void ) { m_FlgOverwrite = true; }
322  void SetOverwriteOff( void ) { m_FlgOverwrite = false; }
323 
324  void SetDebugOn( void ) { m_FlgDebug = true; }
325  void SetDebugOff( void ) { m_FlgDebug = false; }
326 
328  void SetRegisterNonRigidOn( void ) { m_FlgRegister = true;
329  m_FlgRegisterNonRigid = true; }
330  void SetRegisterNonRigidOff( void ) { m_FlgRegisterNonRigid = false; }
331 
332 
333  std::string GetPatientID( void ) { return m_Id; }
334 
335  std::string GetIDDiagnosticImage( void ) { return m_IdDiagnosticImage; }
336  std::string GetIDPreDiagnosticImage( void ) { return m_IdPreDiagnosticImage; }
337  std::string GetIDControlImage( void ) { return m_IdControlImage; }
338 
339  std::string GetFileDiagnostic( void ) { return m_FileDiagnostic; }
340  std::string GetFilePreDiagnostic( void ) { return m_FilePreDiagnostic; }
341  std::string GetFileControl( void ) { return m_FileControl; }
342 
343  std::string GetStrTumourID( void ) { return m_StrTumourID; }
344  std::string GetStrTumourImageID( void ) { return m_StrTumourImageID; }
345 
346  int GetSetNumberDiagnostic( void ) { return m_SetNumberDiagnostic; }
347  int GetSetNumberPreDiagnostic( void ) { return m_SetNumberPreDiagnostic; }
348  int GetSetNumberControl( void ) { return m_SetNumberControl; }
349 
350  int GetThresholdDiagnostic( void ) { return m_ThresholdDiagnostic; }
351  int GetThresholdPreDiagnostic( void ) { return m_ThresholdPreDiagnostic; }
352  int GetThresholdControl( void ) { return m_ThresholdControl; }
353 
354  int GetBreastAreaDiagnostic( void ) { return m_BreastAreaDiagnostic; }
355  int GetBreastAreaPreDiagnostic( void ) { return m_BreastAreaPreDiagnostic; }
356  int GetBreastAreaControl( void ) { return m_BreastAreaControl; }
357 
358  int GetTumourLeft( void ) { return m_TumourLeft; }
359  int GetTumourRight( void ) { return m_TumourRight; }
360  int GetTumourTop( void ) { return m_TumourTop; }
361  int GetTumourBottom( void ) { return m_TumourBottom; }
362 
363  float GetTumourDiameter( void ) { return m_TumourDiameter; }
364 
365  void LoadImages( void );
366  void UnloadImages( void );
367 
368  void Print( bool flgVerbose = false );
369 
370  std::vector< PointOnBoundary > *GetBreastEdgeCoords( std::string strBreastEdgeImageID );
371 
372  void SetBreastEdgeCoords( std::string strBreastEdgeImageID,
373  std::vector< PointOnBoundary > *edgeCoords );
374 
375  void PushBackBreastEdgeCoord( std::string strBreastEdgeImageID,
376  int id, int x, int y );
377 
378  std::vector< PointOnBoundary > *GetPectoralCoords( std::string strPectoralImageID );
379 
380  void SetPectoralCoords( std::string strPectoralImageID,
381  std::vector< PointOnBoundary > *pecCoords );
382 
383  void PushBackPectoralCoord( std::string strPectoralImageID,
384  int id, int x, int y );
385 
386  void WriteDataToCSVFile( std::ofstream *foutOutputDensityCSV );
387 
388  virtual bool Compute( void ) { return false; };
389 
390 protected:
391 
394 
396  virtual ~MammogramAnalysis();
397 
400 
403 
406 
408  enumRegistrationImagesType m_TypeOfInputImagesToRegister;
409 
411 
414 
415  // The diagnostic image
416 
421 
425 
426  BreastSideType m_BreastSideDiagnostic;
427 
428  // The pre-diagnostic image
429 
433 
437 
439 
440  // The control image
441 
445 
449 
450  BreastSideType m_BreastSideControl;
451 
452  // The tumour
453 
456 
461 
463 
464  LabelPixelType m_DiagTumourRegionValue;
465 
468 
470 
473 
475 
478 
479  // The region of interest size
480 
482 
483  DictionaryType m_DiagDictionary;
484  DictionaryType m_PreDiagDictionary;
485  DictionaryType m_ControlDictionary;
486 
487 
488  typename ImageType::Pointer m_ImDiagnostic;
489  typename ImageType::Pointer m_ImPreDiagnostic;
490  typename ImageType::Pointer m_ImControl;
491 
492  typename ImageType::Pointer m_ImDiagnosticMask;
493  typename ImageType::Pointer m_ImPreDiagnosticMask;
494  typename ImageType::Pointer m_ImControlMask;
495 
496  typename LabelImageType::Pointer m_ImDiagnosticLabels;
497  typename LabelImageType::Pointer m_ImPreDiagnosticLabels;
498  typename LabelImageType::Pointer m_ImControlLabels;
499 
500  typename ImageType::Pointer m_ImDiagnosticRegnMask;
501  typename ImageType::Pointer m_ImPreDiagnosticRegnMask;
502  typename ImageType::Pointer m_ImControlRegnMask;
503 
504 
505  std::vector< PointOnBoundary > m_DiagBreastEdgePoints;
506  std::vector< PointOnBoundary > m_PreDiagBreastEdgePoints;
507  std::vector< PointOnBoundary > m_ControlBreastEdgePoints;
508 
509  std::vector< PointOnBoundary > m_DiagPectoralPoints;
510  std::vector< PointOnBoundary > m_PreDiagPectoralPoints;
511  std::vector< PointOnBoundary > m_ControlPectoralPoints;
512 
513 
514  std::map< LabelPixelType, Patch > m_DiagPatches;
515  std::map< LabelPixelType, Patch > m_PreDiagPatches;
516  std::map< LabelPixelType, Patch > m_ControlPatches;
517 
518 
521 
522  void CreateDirectoryAndParents( std::string filename );
523 
524  void PrintDictionary( DictionaryType &dictionary );
525 
526  typename ImageType::SpacingType GetImageResolutionFromDictionary( DictionaryType &dictionary );
527 
528  bool ReadImage( MammogramType mammoType );
529 
530  std::string BuildOutputFilename( std::string fileInput, std::string suffix );
531 
532  template < typename TOutputImageType >
533  std::string CastImageAndWriteToFile( std::string fileOutput,
534  const char *description,
535  typename ImageType::Pointer image,
536  DictionaryType &dictionary );
537 
538  template < typename TOutputImageType >
539  std::string CastImageAndWriteToFile( std::string fileInput,
540  std::string suffix,
541  const char *description,
542  typename ImageType::Pointer image,
543  DictionaryType &dictionary );
544 
545  template < typename TOutputImageType >
546  std::string WriteImageFile( std::string fileInput,
547  std::string suffix,
548  const char *description,
549  typename TOutputImageType::Pointer image,
550  DictionaryType &dictionary );
551 
552  void WriteLabelImageFile( std::string fileInput,
553  std::string suffix,
554  const char *description,
555  typename LabelImageType::Pointer image,
556  typename LabelImageType::RegionType &tumourRegion,
557  DictionaryType &dictionary );
558 
559  void WriteRegistrationDifferenceImage( std::string fileInput,
560  std::string suffix,
561  const char *description,
562  typename ImageType::Pointer image,
563  DictionaryType &dictionary );
564 
565  void AddPointToPolygon( typename PolygonType::Pointer &polygon,
566  typename ImageType::Pointer &image,
567  typename ImageType::SizeType &polySize,
568  int x, int y );
569 
570  typename ImageType::Pointer MaskWithPolygon( MammogramType mammoType,
571  LocusType locusType );
572 
573  typename ImageType::Pointer MaskWithPolygon( MammogramType mammoType );
574 
575  void RemoveTumourFromRegnMask( void );
576 
577  template <typename ScalesType>
578  ScalesType SetRegistrationParameterScales( typename itk::TransformTypeEnum transformType,
579  unsigned int nParameters );
580 
582  RegisterTheImages( typename ImageType::Pointer imSource,
583  std::string fileInputSource,
584  typename ImageType::Pointer maskSource,
585 
586  std::string fileOutputAffineTransformation,
587  std::string fileOutputAffineRegistered,
588 
589  std::string fileOutputNonRigidTransformation,
590  std::string fileOutputNonRigidRegistered,
591 
592  std::string *dirOutput = 0 );
593 
595  TransformTumourPositionIntoImage( typename LabelImageType::IndexType &idxTumourCenter,
596  typename ImageType::Pointer &image,
597  typename RegistrationFilterType::Pointer registration );
598 
599  typename LabelImageType::Pointer
600  GenerateRegionLabels( BreastSideType breastSide,
601  typename LabelImageType::IndexType &idxTumourCenter,
602  typename LabelImageType::RegionType &tumourRegion,
603  LabelPixelType &tumourRegionValue,
604  typename ImageType::Pointer &image,
605  typename ImageType::Pointer &imMask,
606  typename std::map< LabelPixelType, Patch > &listOfPatches,
607  int threshold );
608 
609  void GenerateRandomTumourPositionInImage( MammogramType mammoType );
610 
611  typename ImageType::Pointer DrawTumourRegion( typename ImageType::Pointer image );
612 
613 private:
614 
615  MammogramAnalysis(const Self&); //purposely not implemented
616  void operator=(const Self&); //purposely not implemented
617 
618  boost::random::mt19937 m_Gen;
619 
620 };
621 
622 } // namespace itk
623 
624 
625 #ifndef ITK_MANUAL_INSTANTIATION
626 #include "itkMammogramAnalysis.txx"
627 #endif
628 
629 #endif
630 
631 
void SetRegisterOn(void)
Definition: itkMammogramAnalysis.h:314
void SetVerboseOff(void)
Definition: itkMammogramAnalysis.h:319
void SetOverwriteOn(void)
Definition: itkMammogramAnalysis.h:321
PointsContainer::Iterator PointsIterator
Definition: itkMammogramAnalysis.h:234
int m_ThresholdDiagnostic
Definition: itkMammogramAnalysis.h:423
void SetTumourRight(int tumRight)
Definition: itkMammogramAnalysis.h:306
std::string m_FileDiagnosticRegnMask
Definition: itkMammogramAnalysis.h:420
LabelImageType::RegionType m_DiagTumourRegion
Definition: itkMammogramAnalysis.h:467
ImageType::Pointer m_ImPreDiagnosticMask
Definition: itkMammogramAnalysis.h:493
itk::Image< RealType, InputDimension > RealImageType
Definition: itkMammogramAnalysis.h:229
DictionaryType m_PreDiagDictionary
Definition: itkMammogramAnalysis.h:484
enumRegistrationImagesType m_TypeOfInputImagesToRegister
Specify the input images to register.
Definition: itkMammogramAnalysis.h:408
itk::ImageMomentsCalculator< ImageType > ImageMomentCalculatorType
Definition: itkMammogramAnalysis.h:248
std::string m_DirOutput
Definition: itkMammogramAnalysis.h:413
int m_BreastAreaPreDiagnostic
Definition: itkMammogramAnalysis.h:436
std::string GetFileControl(void)
Definition: itkMammogramAnalysis.h:341
PointSetType::PointsContainer PointsContainer
Definition: itkMammogramAnalysis.h:233
ImageType::Pointer m_ImControlRegnMask
Definition: itkMammogramAnalysis.h:502
itk::ImageRegionIterator< ImageType > IteratorType
Definition: itkMammogramAnalysis.h:211
Definition: itkMammogramAnalysis.h:272
Definition: itkMammogramAnalysis.h:262
void SetSetNumberDiagnostic(int thrDiag)
Definition: itkMammogramAnalysis.h:293
Computes whether a mammogram is of the left or right breast from the center of mass.
Definition: itkMammogramLeftOrRightSideCalculator.h:31
TransformTypeEnum
Definition: itkImageRegistrationFactory.h:105
void SetRegisterNonRigidOff(void)
Definition: itkMammogramAnalysis.h:330
void SetBreastAreaControl(int thrControl)
Definition: itkMammogramAnalysis.h:303
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
std::string m_FileControl
Definition: itkMammogramAnalysis.h:443
float m_TumourDiameter
Definition: itkMammogramAnalysis.h:462
BreastSideType m_BreastSideControl
Definition: itkMammogramAnalysis.h:450
PointDataContainer::Iterator PointDataIterator
Definition: itkMammogramAnalysis.h:236
int m_BreastAreaControl
Definition: itkMammogramAnalysis.h:448
LeftOrRightSideCalculatorType::BreastSideType BreastSideType
Definition: itkMammogramAnalysis.h:243
Object Superclass
Definition: itkMammogramAnalysis.h:199
LabelImageType::RegionType m_PreDiagTumourRegion
Definition: itkMammogramAnalysis.h:472
LabelImageType::Pointer m_ImPreDiagnosticLabels
Definition: itkMammogramAnalysis.h:497
void SetFileDiagnostic(std::string fileDiag)
Definition: itkMammogramAnalysis.h:286
void SetOverwriteOff(void)
Definition: itkMammogramAnalysis.h:322
bool m_FlgOverwrite
Definition: itkMammogramAnalysis.h:401
int m_SetNumberPreDiagnostic
Definition: itkMammogramAnalysis.h:434
int GetSetNumberPreDiagnostic(void)
Definition: itkMammogramAnalysis.h:347
int iPatch
Definition: itkMammogramAnalysis.h:177
void SetTumourBottom(int tumBottom)
Definition: itkMammogramAnalysis.h:308
int GetThresholdPreDiagnostic(void)
Definition: itkMammogramAnalysis.h:351
int GetTumourRight(void)
Definition: itkMammogramAnalysis.h:359
int m_SetNumberDiagnostic
Definition: itkMammogramAnalysis.h:422
const GLfloat * c
Definition: glew.h:14144
void Print(const char *indent)
Definition: itkMammogramAnalysis.h:85
void SetTypeOfInputImagesToRegister(enumRegistrationImagesType regImagesType)
Set the registration image type.
Definition: itkMammogramAnalysis.h:256
std::map< LabelPixelType, Patch > m_PreDiagPatches
Definition: itkMammogramAnalysis.h:515
int GetSetNumberDiagnostic(void)
Definition: itkMammogramAnalysis.h:346
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
ImageType::Pointer m_ImControlMask
Definition: itkMammogramAnalysis.h:494
itk::Image< PixelType, Dimension >::Pointer ReadImage(std::string fileInput)
Definition: niftkEVFFCECT.cxx:82
void SetThresholdControl(int thrControl)
Definition: itkMammogramAnalysis.h:299
DictionaryType m_DiagDictionary
Definition: itkMammogramAnalysis.h:483
std::string GetIDControlImage(void)
Definition: itkMammogramAnalysis.h:337
RegistrationFilterType::Pointer m_RegistrationPreDiag
Definition: itkMammogramAnalysis.h:519
bool m_FlgDebug
Definition: itkMammogramAnalysis.h:399
std::string m_Id
Definition: itkMammogramAnalysis.h:410
GLint GLint GLint GLint GLint GLint y
Definition: glew.h:1236
LabelPixelType m_ControlTumourRegionValue
Definition: itkMammogramAnalysis.h:474
Definition: niftkITKAffineResampleImage.cxx:74
itk::Image< OutputPixelType, InputDimension > OutputImageType
Definition: itkMammogramAnalysis.h:218
std::string GetStrTumourImageID(void)
Definition: itkMammogramAnalysis.h:344
std::string GetIDDiagnosticImage(void)
Definition: itkMammogramAnalysis.h:335
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
ImageType::Pointer m_ImDiagnostic
Definition: itkMammogramAnalysis.h:488
std::string GetFileDiagnostic(void)
Definition: itkMammogramAnalysis.h:339
std::string m_StrTumourImageID
Definition: itkMammogramAnalysis.h:455
int x
Definition: itkMammogramAnalysis.h:66
PointSetType::PointDataContainer PointDataContainer
Definition: itkMammogramAnalysis.h:235
void SetRegisterOff(void)
Definition: itkMammogramAnalysis.h:315
int GetThresholdControl(void)
Definition: itkMammogramAnalysis.h:352
bool m_FlgRegister
Definition: itkMammogramAnalysis.h:402
SmartPointer< Self > Pointer
Definition: itkMammogramRegistrationFilter.h:45
int GetTumourLeft(void)
Definition: itkMammogramAnalysis.h:358
int GetSetNumberControl(void)
Definition: itkMammogramAnalysis.h:348
std::vector< PointOnBoundary > m_ControlPectoralPoints
Definition: itkMammogramAnalysis.h:511
int GetBreastAreaControl(void)
Definition: itkMammogramAnalysis.h:356
int m_TumourLeft
Definition: itkMammogramAnalysis.h:457
std::vector< PointOnBoundary > m_DiagBreastEdgePoints
Definition: itkMammogramAnalysis.h:505
RegistrationFilterType::enumRegistrationImagesType enumRegistrationImagesType
Definition: itkMammogramAnalysis.h:253
Patch()
Definition: itkMammogramAnalysis.h:103
float nPixels
Definition: itkMammogramAnalysis.h:180
itk::MammogramLeftOrRightSideCalculator< ImageType > LeftOrRightSideCalculatorType
Definition: itkMammogramAnalysis.h:241
SmartPointer< const Self > ConstPointer
Definition: itkMammogramAnalysis.h:201
ImageType::Pointer m_ImPreDiagnosticRegnMask
Definition: itkMammogramAnalysis.h:501
itk::ImageFileReader< ImageType > ReaderType
Definition: itkMammogramAnalysis.h:210
enumRegistrationImagesType
The input images to register.
Definition: itkMammogramRegistrationFilter.h:109
void PrintDictionary(DictionaryType &dictionary)
Definition: niftkAnonymiseDICOMImages.cxx:94
ImageType::Pointer m_ImPreDiagnostic
Definition: itkMammogramAnalysis.h:489
void SetDebugOn(void)
Definition: itkMammogramAnalysis.h:324
ImageType::Pointer m_ImControl
Definition: itkMammogramAnalysis.h:490
void Print(const char *indent, float maxNumberOfPixels)
Definition: itkMammogramAnalysis.h:150
std::string m_DirInput
Definition: itkMammogramAnalysis.h:412
std::vector< PointOnBoundary > m_PreDiagBreastEdgePoints
Definition: itkMammogramAnalysis.h:506
void SetVerboseOn(void)
Definition: itkMammogramAnalysis.h:318
ImageType::Pointer m_ImDiagnosticRegnMask
Definition: itkMammogramAnalysis.h:500
std::vector< PointOnBoundary > m_PreDiagPectoralPoints
Definition: itkMammogramAnalysis.h:510
std::string GetFilePreDiagnostic(void)
Definition: itkMammogramAnalysis.h:340
std::string m_IdControlImage
Definition: itkMammogramAnalysis.h:442
RegistrationFilterType::Pointer m_RegistrationControl
Definition: itkMammogramAnalysis.h:520
itk::PointSet< VectorType, ParametricDimension > PointSetType
Definition: itkMammogramAnalysis.h:227
void SetBreastAreaDiagnostic(int thrDiag)
Definition: itkMammogramAnalysis.h:301
Definition: itkMammogramAnalysis.h:264
LabelImageType::IndexType m_DiagTumourCenterIndex
Definition: itkMammogramAnalysis.h:466
void SetInputDirectory(std::string dirIn)
Definition: itkMammogramAnalysis.h:279
void SetIDDiagnosticImage(std::string idDiagImage)
Definition: itkMammogramAnalysis.h:282
PointOnBoundary()
Definition: itkMammogramAnalysis.h:69
int GetTumourTop(void)
Definition: itkMammogramAnalysis.h:360
void SetFilePreDiagnostic(std::string filePreDiag)
Definition: itkMammogramAnalysis.h:287
itk::Vector< RealType, DataDimension > VectorType
Definition: itkMammogramAnalysis.h:225
std::string m_FileDiagnosticRegn
Definition: itkMammogramAnalysis.h:419
void SetFileControl(std::string fileControl)
Definition: itkMammogramAnalysis.h:288
LocusType
Definition: itkMammogramAnalysis.h:270
float sumYindices
Definition: itkMammogramAnalysis.h:183
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
void SetSetNumberPreDiagnostic(int thrPreDiag)
Definition: itkMammogramAnalysis.h:294
void SetPatientID(std::string idPatient)
Definition: itkMammogramAnalysis.h:277
int m_ThresholdPreDiagnostic
Definition: itkMammogramAnalysis.h:435
std::string m_IdDiagnosticImage
Definition: itkMammogramAnalysis.h:417
LabelImageType::RegionType m_ControlTumourRegion
Definition: itkMammogramAnalysis.h:477
int m_TumourTop
Definition: itkMammogramAnalysis.h:459
BreastSideType m_BreastSidePreDiagnostic
Definition: itkMammogramAnalysis.h:438
void SetTumourID(std::string strTumID)
Definition: itkMammogramAnalysis.h:290
std::string m_IdPreDiagnosticImage
Definition: itkMammogramAnalysis.h:430
std::vector< PointOnBoundary > m_ControlBreastEdgePoints
Definition: itkMammogramAnalysis.h:507
std::string m_FilePreDiagnostic
Definition: itkMammogramAnalysis.h:431
std::string m_FileDiagnostic
Definition: itkMammogramAnalysis.h:418
itk::ImageRegionIteratorWithIndex< ImageType > IteratorWithIndexType
Definition: itkMammogramAnalysis.h:212
std::map< LabelPixelType, Patch > m_DiagPatches
Definition: itkMammogramAnalysis.h:514
BreastSideType
Breast side.
Definition: itkMammogramLeftOrRightSideCalculator.h:71
LabelImageType::Pointer m_ImDiagnosticLabels
Definition: itkMammogramAnalysis.h:496
int m_SetNumberControl
Definition: itkMammogramAnalysis.h:446
LabelPixelType m_PreDiagTumourRegionValue
Definition: itkMammogramAnalysis.h:469
void SetThresholdDiagnostic(int thrDiag)
Definition: itkMammogramAnalysis.h:297
short int OutputPixelType
Definition: itkMammogramAnalysis.h:217
void SetRegionSizeInMM(float roiSize)
Definition: itkMammogramAnalysis.h:312
void SetCoordinate(int i, int j)
Definition: itkMammogramAnalysis.h:113
int m_TumourRight
Definition: itkMammogramAnalysis.h:458
LabelImageType::Pointer m_ImControlLabels
Definition: itkMammogramAnalysis.h:498
itk::PolygonSpatialObject< InputDimension > PolygonType
Definition: itkMammogramAnalysis.h:238
float GetNumberOfPixels(void)
Definition: itkMammogramAnalysis.h:136
void SetBreastAreaPreDiagnostic(int thrPreDiag)
Definition: itkMammogramAnalysis.h:302
void GetCoordinate(int &i, int &j)
Definition: itkMammogramAnalysis.h:118
itk::Image< VectorType, ParametricDimension > VectorImageType
Definition: itkMammogramAnalysis.h:226
void SetSetNumberControl(int thrControl)
Definition: itkMammogramAnalysis.h:295
void SetTumourLeft(int tumLeft)
Definition: itkMammogramAnalysis.h:305
void SetTumourImageID(std::string strTumImageID)
Definition: itkMammogramAnalysis.h:291
GLint GLint GLint GLint GLint x
Definition: glew.h:1236
itk::MammogramRegistrationFilter< ImageType, ImageType > RegistrationFilterType
Definition: itkMammogramAnalysis.h:251
void SetDebugOff(void)
Definition: itkMammogramAnalysis.h:325
itk::Image< InputPixelType, InputDimension > ImageType
Definition: itkMammogramAnalysis.h:209
GLenum const void GLuint GLenum GLenum transformType
Definition: glew.h:11767
float DistanceTo(PointOnBoundary c)
Definition: itkMammogramAnalysis.h:81
Definition: itkMammogramAnalysis.h:263
float GetTumourDiameter(void)
Definition: itkMammogramAnalysis.h:363
int y
Definition: itkMammogramAnalysis.h:67
Image< LabelPixelType, InputDimension > LabelImageType
Definition: itkMammogramAnalysis.h:215
int m_ThresholdControl
Definition: itkMammogramAnalysis.h:447
std::string GetStrTumourID(void)
Definition: itkMammogramAnalysis.h:343
std::vector< PointOnBoundary > m_DiagPectoralPoints
Definition: itkMammogramAnalysis.h:509
std::map< LabelPixelType, Patch > m_ControlPatches
Definition: itkMammogramAnalysis.h:516
float m_RegionSizeInMM
Definition: itkMammogramAnalysis.h:481
float nDensePixels
Definition: itkMammogramAnalysis.h:181
PointOnBoundary(int idIn, int xIn, int yIn)
Definition: itkMammogramAnalysis.h:75
LabelImageType::IndexType m_ControlCenterIndex
Definition: itkMammogramAnalysis.h:476
std::string m_StrTumourID
Definition: itkMammogramAnalysis.h:454
LabelPixelType m_DiagTumourRegionValue
Definition: itkMammogramAnalysis.h:464
itk::MetaDataObject< std::string > MetaDataStringType
Definition: itkMammogramAnalysis.h:221
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
itk::Image< unsigned char, InputDimension > ImageTypeUCHAR
Definition: itkMammogramAnalysis.h:230
void SetIDPreDiagnosticImage(std::string idPreDiagImage)
Definition: itkMammogramAnalysis.h:283
void SetOutputDirectory(std::string dirOut)
Definition: itkMammogramAnalysis.h:280
itk::SignedMaurerDistanceMapImageFilter< ImageType, RealImageType > DistanceTransformType
Definition: itkMammogramAnalysis.h:249
MammogramAnalysis Self
Definition: itkMammogramAnalysis.h:198
std::string m_FileControlRegn
Definition: itkMammogramAnalysis.h:444
void SetTumourTop(int tumTop)
Definition: itkMammogramAnalysis.h:307
float sumXindices
Definition: itkMammogramAnalysis.h:182
void GetCenter(float &xIndex, float &yIndex)
Definition: itkMammogramAnalysis.h:139
void SetThresholdPreDiagnostic(int thrPreDiag)
Definition: itkMammogramAnalysis.h:298
Definition: itkMammogramAnalysis.h:193
bool m_FlgVerbose
Definition: itkMammogramAnalysis.h:398
BreastSideType m_BreastSideDiagnostic
Definition: itkMammogramAnalysis.h:426
void AddNonDensePixel(float xIndex, float yIndex)
Definition: itkMammogramAnalysis.h:130
float RealType
Definition: itkMammogramAnalysis.h:223
std::string GetIDPreDiagnosticImage(void)
Definition: itkMammogramAnalysis.h:336
void SetIDControlImage(std::string idControlImage)
Definition: itkMammogramAnalysis.h:284
virtual bool Compute(void)
Definition: itkMammogramAnalysis.h:388
Definition: itkMammogramAnalysis.h:62
unsigned int LabelPixelType
Definition: itkMammogramAnalysis.h:214
bool m_FlgRegisterNonRigid
Specify whether to perform a non-rigid registration.
Definition: itkMammogramAnalysis.h:405
LabelImageType::IndexType m_PreDiagCenterIndex
Definition: itkMammogramAnalysis.h:471
int GetThresholdDiagnostic(void)
Definition: itkMammogramAnalysis.h:350
void AddDensePixel(float xIndex, float yIndex)
Definition: itkMammogramAnalysis.h:123
int m_TumourBottom
Definition: itkMammogramAnalysis.h:460
int jPatch
Definition: itkMammogramAnalysis.h:178
int GetBreastAreaPreDiagnostic(void)
Definition: itkMammogramAnalysis.h:355
int id
Definition: itkMammogramAnalysis.h:65
void SetTumourDiameter(float diameter)
Definition: itkMammogramAnalysis.h:310
Definition: itkMammogramAnalysis.h:273
void LoadImages(const std::vector< std::string > &files, std::vector< IplImage * > &images, std::vector< std::string > &fileNames)
Uses OpenCV to load images.
Definition: mitkCameraCalibrationFacade.cxx:36
int m_BreastAreaDiagnostic
Definition: itkMammogramAnalysis.h:424
DictionaryType m_ControlDictionary
Definition: itkMammogramAnalysis.h:485
GLsizei const GLcharARB ** string
Definition: glew.h:5194
itk::MetaDataDictionary DictionaryType
Definition: itkMammogramAnalysis.h:220
void SetRegisterNonRigidOn(void)
Specify whether to perform a non-rigid registration.
Definition: itkMammogramAnalysis.h:328
float GetNumberOfDensePixels(void)
Definition: itkMammogramAnalysis.h:137
int GetTumourBottom(void)
Definition: itkMammogramAnalysis.h:361
Definition: itkMammogramAnalysis.h:99
std::string m_FilePreDiagnosticRegn
Definition: itkMammogramAnalysis.h:432
ImageType::Pointer m_ImDiagnosticMask
Definition: itkMammogramAnalysis.h:492
MammogramType
Definition: itkMammogramAnalysis.h:260
std::string GetPatientID(void)
Definition: itkMammogramAnalysis.h:333
Definition: itkMammogramRegistrationFilter.h:37
SmartPointer< Self > Pointer
Definition: itkMammogramAnalysis.h:200
int GetBreastAreaDiagnostic(void)
Definition: itkMammogramAnalysis.h:354