NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.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 itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter_h
16 #define itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter_h
17 
18 #include <vector>
19 #include <stack>
20 #include <itkImage.h>
21 #include <itkImageRegionConstIterator.h>
22 #include <itkImageRegionIterator.h>
23 #include <itkImageToImageFilter.h>
24 
25 namespace itk {
33  template <class TInputImageType, class TOutputImageType>
34  class MIDASMorphologicalSegmentorLargestConnectedComponentImageFilter : public ImageToImageFilter<TInputImageType, TOutputImageType> {
35 
36  public:
37  typedef TInputImageType InputImageType;
38  typedef TOutputImageType OutputImageType;
44  typedef ImageToImageFilter<InputImageType, OutputImageType> SuperClass;
45  typedef SmartPointer<Self> Pointer;
46  typedef SmartPointer<const Self> ConstPointer;
47  itkNewMacro(Self);
48 
50  itkSetMacro(InputBackgroundValue, InputImagePixelType);
51  itkGetConstMacro(InputBackgroundValue, InputImagePixelType);
52 
54  itkSetMacro(OutputBackgroundValue, OutputImagePixelType);
55  itkGetConstMacro(OutputBackgroundValue, OutputImagePixelType);
56 
58  itkSetMacro(OutputForegroundValue, OutputImagePixelType);
59  itkGetConstMacro(OutputForegroundValue, OutputImagePixelType);
60 
62  itkGetConstMacro(Capacity, unsigned int);
63  void SetCapacity(unsigned capacity)
64  {
65  m_Capacity = capacity;
66  }
67 
69  itkGetConstMacro(NumberOfConnectedComponents, unsigned int);
70 
71  protected:
74 
76  void _ProcessRegion(std::vector<unsigned int> &r_regionIndices, const unsigned int &startIndex);
77 
79  void _SetComponentPixels(const std::vector<unsigned int> &regionIndices);
80 
82  virtual void BeforeThreadedGenerateData();
83 
85  virtual void ThreadedGenerateData(const InputImageRegionType &outputRegionForThread, ThreadIdType ThreadID);
86 
88  virtual void AfterThreadedGenerateData();
89 
90  private:
91  OutputImagePixelType m_OutputBackgroundValue;
92  OutputImagePixelType m_OutputForegroundValue;
93  InputImagePixelType m_InputBackgroundValue;
94  unsigned int m_Capacity;
95  std::vector<unsigned long int> m_NumberOfLabelledPixelsPerThread;
96  unsigned int m_NumberOfConnectedComponents;
97  };
98 
99 #ifndef ITK_MANUAL_INSTANTIATION
100 #include "itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.txx"
101 #endif
102 }
103 
104 #endif /* ITKMIDASMORPHOLOGICALSEGMENTORLARGESTCONNECTEDCOMPONENTIMAGEFILTER_H_ */
MIDASMorphologicalSegmentorLargestConnectedComponentImageFilter Self
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:43
virtual void AfterThreadedGenerateData()
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:65
SmartPointer< Self > Pointer
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:45
Largest connected component filter.
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:34
Definition: niftkITKAffineResampleImage.cxx:74
InputImageType::RegionType InputImageRegionType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:42
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
ImageToImageFilter< InputImageType, OutputImageType > SuperClass
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:44
MIDASMorphologicalSegmentorLargestConnectedComponentImageFilter(void)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:18
void _SetComponentPixels(const std::vector< unsigned int > &regionIndices)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:183
void _ProcessRegion(std::vector< unsigned int > &r_regionIndices, const unsigned int &startIndex)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:132
TOutputImageType OutputImageType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:38
virtual void ThreadedGenerateData(const InputImageRegionType &outputRegionForThread, ThreadIdType ThreadID)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:35
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
virtual ~MIDASMorphologicalSegmentorLargestConnectedComponentImageFilter(void)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:73
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
virtual void BeforeThreadedGenerateData()
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:27
SmartPointer< const Self > ConstPointer
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:46
TInputImageType InputImageType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:37
OutputImageType::PixelType OutputImagePixelType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:40
InputImageType::IndexType IndexType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:39
InputImageType::PixelType InputImagePixelType
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:41
void SetCapacity(unsigned capacity)
Definition: itkMIDASMorphologicalSegmentorLargestConnectedComponentImageFilter.h:63