// Set value
this->SetIOVerbose(mArgsInfo.verbose_flag);
-
+
if (mArgsInfo.input_given) this->AddInputFilename(mArgsInfo.input_arg);
-
+
}
//--------------------------------------------------------------------
{
// Read mask input
typedef itk::Image<unsigned char, ImageType::ImageDimension> MaskInputImageType;
- typename MaskInputImageType::Pointer mask = NULL;
+ typename MaskInputImageType::Pointer mask;
mask = this->template GetInput<MaskInputImageType>(0);
//Create the Shape Label Map from the mask
typedef itk::LabelMap< ShapeLabelObjectType > LabelMapType;
typedef itk::ConnectedComponentImageFilter <MaskInputImageType, OutputImageType > ConnectedComponentImageFilterType;
typedef itk::LabelImageToShapeLabelMapFilter< OutputImageType, LabelMapType> I2LType;
-
+
typename ConnectedComponentImageFilterType::Pointer connected = ConnectedComponentImageFilterType::New ();
connected->SetInput(mask);
connected->FullyConnectedOn();
connected->Update();
-
+
//Create a map to contain all connectedComponent (even a little pixel)
typename I2LType::Pointer i2l = I2LType::New();
i2l->SetInput( connected->GetOutput() );
i2l->SetComputePerimeter(true);
i2l->Update();
-
+
// Retrieve the biggest component
LabelMapType *labelMap = i2l->GetOutput();
int largestComponent(0);
if (labelObject->GetNumberOfPixels() > nbPixel)
{
nbPixel = labelObject->GetNumberOfPixels();
- largestComponent = n;
+ largestComponent = n;
}
}
-
+
//Write statitistics on the largest component
ShapeLabelObjectType *labelObject = labelMap->GetNthLabelObject(largestComponent);
- std::cout << " Centroid: " << std::endl;
+ std::cout << " Centroid position (mm): " << std::endl;
std::cout << labelObject->GetCentroid()[0] << std::endl;
std::cout << labelObject->GetCentroid()[1] << std::endl;
std::cout << labelObject->GetCentroid()[2] << std::endl;