18 #ifndef sitkLabelShapeStatisticsImageFilter_h
19 #define sitkLabelShapeStatisticsImageFilter_h
69 SITK_RETURN_SELF_TYPE_HEADER
SetBackgroundValue (
double BackgroundValue ) { this->m_BackgroundValue = BackgroundValue;
return *
this; }
79 SITK_RETURN_SELF_TYPE_HEADER
SetComputeFeretDiameter (
bool ComputeFeretDiameter ) { this->m_ComputeFeretDiameter = ComputeFeretDiameter;
return *
this; }
93 SITK_RETURN_SELF_TYPE_HEADER
SetComputePerimeter (
bool ComputePerimeter ) { this->m_ComputePerimeter = ComputePerimeter;
return *
this; }
107 SITK_RETURN_SELF_TYPE_HEADER
SetComputeOrientedBoundingBox (
bool ComputeOrientedBoundingBox ) { this->m_ComputeOrientedBoundingBox = ComputeOrientedBoundingBox;
return *
this; }
133 std::vector<unsigned int>
GetRegion(
int64_t label)
const {
return this->m_pfGetRegion(label); };
204 std::vector<int64_t>
GetLabels()
const {
return this->m_Labels; };
324 std::string
GetName()
const {
return std::string (
"LabelShapeStatisticsImageFilter"); }
327 std::string ToString()
const;
331 void Execute (
const Image& image1 );
335 void Execute (
const Image& image1,
double backgroundValue,
bool computeFeretDiameter,
bool computePerimeter,
bool computeOrientedBoundingBox );
348 typedef void (Self::*MemberFunctionType)(
const Image& image1 );
349 template <
class TImageType>
void ExecuteInternal (
const Image& image1 );
363 nsstd::function<std::vector<unsigned int>(
int64_t)> m_pfGetBoundingBox;
365 nsstd::function<std::vector<unsigned int>(
int64_t)> m_pfGetRegion;
367 nsstd::function<std::vector<double>(
int64_t)> m_pfGetCentroid;
371 nsstd::function<std::vector<double>(
int64_t)> m_pfGetEquivalentEllipsoidDiameter;
395 nsstd::function<std::vector<double>(
int64_t)> m_pfGetPrincipalAxes;
397 nsstd::function<std::vector<double>(
int64_t)> m_pfGetPrincipalMoments;
401 nsstd::function<std::vector<double>(
int64_t)> m_pfGetOrientedBoundingBoxSize;
403 nsstd::function<std::vector<double>(
int64_t)> m_pfGetOrientedBoundingBoxOrigin;
405 nsstd::function<std::vector<double>(
int64_t)> m_pfGetOrientedBoundingBoxDirection;
407 nsstd::function<std::vector<double>(
int64_t)> m_pfGetOrientedBoundingBoxVertices;
double GetPerimeter(int64_t label) const
LabelShapeStatisticsImageFilter Self
Self & ComputeFeretDiameterOff()
bool GetComputePerimeter() const
bool m_ComputeFeretDiameter
typelist::MakeTypeList< BasicPixelID< int8_t >, BasicPixelID< uint8_t >, BasicPixelID< int16_t >, BasicPixelID< uint16_t >, BasicPixelID< int32_t >, BasicPixelID< uint32_t > >::Type IntegerPixelIDTypeList
nsstd::function< double(int64_t)> m_pfGetElongation
double GetRoundness(int64_t label) const
#define SITKBasicFilters_EXPORT
double GetBackgroundValue() const
Self & ComputeFeretDiameterOn()
nsstd::function< double(int64_t)> m_pfGetFeretDiameter
std::vector< int64_t > GetLabels() const
double GetPerimeterOnBorder(int64_t label) const
Self & SetComputeOrientedBoundingBox(bool ComputeOrientedBoundingBox)
Self & SetComputePerimeter(bool ComputePerimeter)
std::vector< double > GetCentroid(int64_t label) const
std::vector< double > GetOrientedBoundingBoxSize(int64_t label) const
std::vector< double > GetPrincipalAxes(int64_t label) const
std::vector< double > GetOrientedBoundingBoxDirection(int64_t label) const
Converts a label image to a label map and valuates the shape attributes.
double GetPerimeterOnBorderRatio(int64_t label) const
nsstd::function< uint64_t(int64_t)> m_pfGetNumberOfPixelsOnBorder
bool m_ComputeOrientedBoundingBox
std::vector< double > GetPrincipalMoments(int64_t label) const
std::vector< int64_t > m_Labels
Self & ComputePerimeterOn()
Self & SetComputeFeretDiameter(bool ComputeFeretDiameter)
nsstd::function< double(int64_t)> m_pfGetPerimeterOnBorder
double GetFeretDiameter(int64_t label) const
IntegerPixelIDTypeList PixelIDTypeList
std::vector< double > GetEquivalentEllipsoidDiameter(int64_t label) const
std::vector< unsigned int > GetRegion(int64_t label) const
bool GetComputeOrientedBoundingBox() const
double GetElongation(int64_t label) const
Self & ComputeOrientedBoundingBoxOff()
nsstd::function< double(int64_t)> m_pfGetPerimeter
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Self & ComputePerimeterOff()
Self & ComputeOrientedBoundingBoxOn()
nsstd::function< double(int64_t)> m_pfGetEquivalentSphericalRadius
nsstd::function< double(int64_t)> m_pfGetRoundness
Self & SetBackgroundValue(double BackgroundValue)
nsstd::function< uint64_t(int64_t)> m_pfGetNumberOfPixels
The Image class for SimpleITK.
nsstd::function< double(int64_t)> m_pfGetEquivalentSphericalPerimeter
uint64_t GetNumberOfPixels(int64_t label) const
std::vector< unsigned int > GetBoundingBox(int64_t label) const
nsstd::function< double(int64_t)> m_pfGetPerimeterOnBorderRatio
double GetPhysicalSize(int64_t label) const
std::vector< double > GetOrientedBoundingBoxOrigin(int64_t label) const
std::vector< double > GetOrientedBoundingBoxVertices(int64_t label) const
itk::ProcessObject * m_Filter
double GetEquivalentSphericalRadius(int64_t label) const
uint64_t GetNumberOfPixelsOnBorder(int64_t label) const
nsstd::function< double(int64_t)> m_pfGetPhysicalSize
double GetFlatness(int64_t label) const
bool GetComputeFeretDiameter() const
The base interface for SimpleITK filters that take one input image.
std::string GetName() const
nsstd::function< double(int64_t)> m_pfGetFlatness
double GetEquivalentSphericalPerimeter(int64_t label) const