ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkLabelImageToShapeLabelMapFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkLabelImageToShapeLabelMapFilter_h
19 #define itkLabelImageToShapeLabelMapFilter_h
20 
21 #include "itkShapeLabelObject.h"
23 #include "itkShapeLabelMapFilter.h"
24 
25 namespace itk
26 {
47 template< typename TInputImage, typename TOutputImage =
48  LabelMap< ShapeLabelObject< typename TInputImage::PixelType,
49  TInputImage::ImageDimension > > >
50 class ITK_TEMPLATE_EXPORT LabelImageToShapeLabelMapFilter:
51  public ImageToImageFilter< TInputImage, TOutputImage >
52 {
53 public:
59 
61  typedef TInputImage InputImageType;
64  typedef typename InputImageType::RegionType InputImageRegionType;
65  typedef typename InputImageType::PixelType InputImagePixelType;
66 
67  typedef TOutputImage OutputImageType;
70  typedef typename OutputImageType::RegionType OutputImageRegionType;
71  typedef typename OutputImageType::PixelType OutputImagePixelType;
72  typedef typename OutputImageType::LabelObjectType LabelObjectType;
73 
75  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
76  itkStaticConstMacro(OutputImageDimension, unsigned int, TInputImage::ImageDimension);
77  itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension);
79 
86 
88  itkNewMacro(Self);
89 
92 
93 #ifdef ITK_USE_CONCEPT_CHECKING
94  // Begin concept checking
95  itkConceptMacro( InputEqualityComparableCheck,
97  itkConceptMacro( IntConvertibleToInputCheck,
99  itkConceptMacro( InputOStreamWritableCheck,
101  // End concept checking
102 #endif
103 
108  itkSetMacro(BackgroundValue, OutputImagePixelType);
109  itkGetConstMacro(BackgroundValue, OutputImagePixelType);
111 
116  itkSetMacro(ComputeFeretDiameter, bool);
117  itkGetConstReferenceMacro(ComputeFeretDiameter, bool);
118  itkBooleanMacro(ComputeFeretDiameter);
120 
125  itkSetMacro(ComputePerimeter, bool);
126  itkGetConstReferenceMacro(ComputePerimeter, bool);
127  itkBooleanMacro(ComputePerimeter);
129 
135  itkSetMacro(ComputeOrientedBoundingBox, bool);
136  itkGetConstReferenceMacro(ComputeOrientedBoundingBox, bool);
137  itkBooleanMacro(ComputeOrientedBoundingBox);
139 
140 
141 protected:
144  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
145 
148  void GenerateInputRequestedRegion() ITK_OVERRIDE;
149 
151  void EnlargeOutputRequestedRegion( DataObject *itkNotUsed(output) ) ITK_OVERRIDE;
152 
155  void GenerateData() ITK_OVERRIDE;
156 
157 private:
158  ITK_DISALLOW_COPY_AND_ASSIGN(LabelImageToShapeLabelMapFilter);
159 
160  OutputImagePixelType m_BackgroundValue;
161  bool m_ComputeFeretDiameter;
162  bool m_ComputePerimeter;
163  bool m_ComputeOrientedBoundingBox;
164 }; // end of class
165 } // end namespace itk
166 
167 #ifndef ITK_MANUAL_INSTANTIATION
168 #include "itkLabelImageToShapeLabelMapFilter.hxx"
169 #endif
170 
171 #endif
virtual void PrintSelf(std::ostream &os, Indent indent) const override
convert a labeled image to a label collection image
ImageToImageFilter< TInputImage, TOutputImage > Superclass
LabelImageToLabelMapFilter< InputImageType, OutputImageType > LabelizerType
Converts a label image to a label map and valuates the shape attributes.
Base class for all process objects that output image data.
SmartPointer< Self > Pointer
Image< typename OutputImageType::PixelType, itkGetStaticConstMacro(OutputImageDimension) > ShapeLabelFilterOutput
SmartPointer< const Self > ConstPointer
OutputImageType::PixelType OutputImagePixelType
Base class for all data objects in ITK.
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
#define itkConceptMacro(name, concept)
ShapeLabelMapFilter< TOutputImage, ShapeLabelFilterOutput > LabelObjectValuatorType
The valuator class for the ShapeLabelObject.
Templated n-dimensional image class.
Definition: itkImage.h:75