22 #ifndef otbHooverInstanceFilter_h
23 #define otbHooverInstanceFilter_h
26 #include "itkInPlaceLabelMapFilter.h"
27 #include "itkVariableSizeMatrix.h"
28 #include "itkVariableLengthVector.h"
73 template <
class TLabelMap>
79 typedef itk::InPlaceLabelMapFilter<TLabelMap>
Superclass;
112 void SetMachineSegmentationLabelMap(
const LabelMapType* ms);
123 itkSetMacro(Threshold,
double);
124 itkGetMacro(Threshold,
double);
126 itkSetMacro(UseExtendedAttributes,
bool);
127 itkGetMacro(UseExtendedAttributes,
bool);
157 name =
"HooverInstance_Ext_CD";
160 name =
"HooverInstance_Ext_OS";
163 name =
"HooverInstance_Ext_US";
166 name =
"HooverInstance_Ext_M";
169 name =
"HooverInstance_Ext_N";
172 name =
"HooverInstance_RC";
175 name =
"HooverInstance_RF";
178 name =
"HooverInstance_RA";
181 name =
"HooverInstance_RM";
184 name =
"HooverInstance_RN";
192 if (name ==
"HooverInstance_Ext_CD")
196 else if (name ==
"HooverInstance_Ext_OS")
200 else if (name ==
"HooverInstance_Ext_US")
204 else if (name ==
"HooverInstance_Ext_M")
208 else if (name ==
"HooverInstance_Ext_N")
212 else if (name ==
"HooverInstance_RC")
216 else if (name ==
"HooverInstance_RF")
220 else if (name ==
"HooverInstance_RA")
224 else if (name ==
"HooverInstance_RM")
228 else if (name ==
"HooverInstance_RN")
239 void AllocateOutputs()
override;
242 void ReleaseInputs()
override;
247 void ThreadedProcessLabelObject(LabelObjectType* labelObject)
override;
254 void BeforeThreadedGenerateData()
override;
259 void AfterThreadedGenerateData()
override;
303 #ifndef OTB_MANUAL_INSTANTIATION
This class computes the Hoover instances.
AttributesValueType m_MeanRC
CardinalVector m_CardRegMS
MatrixType m_HooverMatrix
AttributesValueType m_MeanRF
itk::VariableSizeMatrix< CoefficientType > MatrixType
LabelMapType::LabelObjectType LabelObjectType
static std::string GetNameFromAttribute(const AttributeType &a)
unsigned long CoefficientType
AttributesValueType m_MeanRM
LabelVectorType m_LabelsGT
itk::InPlaceLabelMapFilter< TLabelMap > Superclass
LabelObjectType::LabelType LabelType
LabelObjectType::AttributeType AttributeType
unsigned long m_NumberOfRegionsGT
LabelMapType::Pointer LabelMapPointer
AttributesValueType m_MeanRA
LabelMapType::LabelVectorType LabelVectorType
LabelMapType::RegionType ImageRegionType
unsigned long m_NumberOfRegionsMS
itk::SmartPointer< Self > Pointer
static AttributeType GetAttributeFromName(const std::string &name)
LabelObjectType::IndexType IndexType
itk::VariableLengthVector< CoefficientType > CardinalVector
CardinalVector m_CardRegGT
bool m_UseExtendedAttributes
LabelMapType::Iterator IteratorType
AttributesValueType m_MeanRN
std::set< CoefficientType > RegionSetType
~HooverInstanceFilter() override
HooverInstanceFilter Self
std::vector< LabelObjectType * > ObjectVectorType
LabelObjectType::AttributesValueType AttributesValueType
LabelMapType::ConstIterator ConstIteratorType
itk::SmartPointer< const Self > ConstPointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.