[ITK] Computing/Getting the attributes of ShapeLabelObject
Zein Salah
zeinsalah at gmail.com
Tue Dec 9 08:25:21 EST 2014
Hi,
I want to compute some shape properties of segmented objects in a binary image.
S I used the code below to create a labelmap. BTW, I am using ITK 3.14.
typedef unsigned long LabelType;
typedef itk::ShapeLabelObject< LabelType, 3 > LabelObjectType;
typedef itk::LabelMap< LabelObjectType > LabelMapType;
typedef itk::BinaryImageToShapeLabelMapFilter< OverlayImageType,
LabelMapType > ConverterType;
ConverterType::Pointer converter = ConverterType::New();
converter->SetInput(m_SegmentedImage);
converter->SetInputForegroundValue(255);
converter->Update();
LabelMapType::Pointer labelMap = converter->GetOutput();
for( unsigned int label=0; label <
labelMap->GetNumberOfLabelObjects(); label++ )
{
const LabelObjectType * labelObject = labelMap->GetNthLabelObject(label);
LabelObjectType::CentroidType centroid = labelObject->GetCentroid();
std::cout << label << ": " << labelObject->GetCentroid() << " "
<< labelObject->GetPhysicalSize() << " "
<< labelObject->GetRegionElongation() << " "
<< labelObject->GeRoundness()
<< std::endl;
}
Strangely, the output of the Roundness is always 0. Moreover, it seems that
some attrubutes are not implemented, e.g. GetElongation,
GetboundingBox. From the
corresponding IJ paper, I could not really understand if the the
attributes are computed
or need to computed elsewhere.
Any hints how this should work?
Thanks,
Zein
More information about the Community
mailing list