18#ifndef itkShapeLabelMapFilter_h
19#define itkShapeLabelMapFilter_h
52template <
typename TImage,
typename TLabelImage = Image<
typename TImage::PixelType, TImage::ImageDimension>>
83 static constexpr unsigned int ImageDimension = TImage::ImageDimension;
91#ifdef ITK_USE_CONCEPT_CHECKING
106 itkSetMacro(ComputeFeretDiameter,
bool);
107 itkGetConstReferenceMacro(ComputeFeretDiameter,
bool);
108 itkBooleanMacro(ComputeFeretDiameter);
115 itkSetMacro(ComputePerimeter,
bool);
116 itkGetConstReferenceMacro(ComputePerimeter,
bool);
117 itkBooleanMacro(ComputePerimeter);
125 itkSetMacro(ComputeOrientedBoundingBox,
bool);
126 itkGetConstReferenceMacro(ComputeOrientedBoundingBox,
bool);
127 itkBooleanMacro(ComputeOrientedBoundingBox);
134 m_LabelImage = input;
154 bool m_ComputeFeretDiameter{};
155 bool m_ComputePerimeter{};
156 bool m_ComputeOrientedBoundingBox{};
175 template <
typename TMapIntercept,
typename TSpacing>
178#if !defined(ITK_DO_NOT_USE_PERIMETER_SPECIALIZATION)
189#ifndef ITK_MANUAL_INSTANTIATION
190# include "itkShapeLabelMapFilter.hxx"
Base class for filters that takes an image as input and overwrites that image as the output.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
The valuator class for the ShapeLabelObject.
void SetLabelImage(const TLabelImage *input)
typename ImageType::RegionType RegionType
void ComputePerimeter(LabelObjectType *labelObject)
typename ImageType::Pointer ImagePointer
typename ImageType::ConstPointer ImageConstPointer
void ComputeOrientedBoundingBox(LabelObjectType *labelObject)
typename ImageType::IndexType IndexType
typename LabelImageType::ConstPointer LabelImageConstPointer
void ComputeFeretDiameter(LabelObjectType *labelObject)
double PerimeterFromInterceptCount(MapIntercept2Type &intercepts, const Spacing2Type spacing)
double PerimeterFromInterceptCount(MapIntercept3Type &intercepts, const Spacing3Type spacing)
typename LabelImageType::Pointer LabelImagePointer
void BeforeThreadedGenerateData() override
typename LabelImageType::PixelType LabelPixelType
typename ImageType::LabelObjectType LabelObjectType
typename ImageType::SizeType SizeType
typename LabelObjectType::VectorType VectorType
typename ImageType::OffsetType OffsetType
void ThreadedProcessLabelObject(LabelObjectType *labelObject) override
std::map< Offset3Type, SizeValueType, Functor::LexicographicCompare > MapIntercept3Type
std::map< Offset2Type, SizeValueType, Functor::LexicographicCompare > MapIntercept2Type
double PerimeterFromInterceptCount(TMapIntercept &intercepts, const TSpacing &spacing)
void PrintSelf(std::ostream &os, Indent indent) const override
typename LabelObjectType::MatrixType MatrixType
typename ImageType::PixelType PixelType
void AfterThreadedGenerateData() override
TLabelImage LabelImageType
~ShapeLabelMapFilter() override=default
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
ImageBaseType::SpacingType VectorType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Represent a n-dimensional offset between two n-dimensional indexes of n-dimensional image.