[Insight-developers] select an item from a binary image
elhadj meljane
elhadj.meljane at gmail.com
Tue Nov 12 13:43:03 EST 2013
Hi all,
I am trying to use itk to select a component from a binary image. The
binary image contains several items and I want to separate them in
different images.
I used the code below but it doesn't work. I got an error message at the
run time. It looks from the debugger that the line
labelerAttribute->Update()
causes the error. I gave a valid file as input and checked that ITK reads
correctly this file. I would appreciate your help to fix this!
#include "itkAttributeImageLabelObject.h"
const unsigned int Dimension = 2;
typedef unsigned char LabelPixelType;
typedef itk::Image< LabelPixelType, Dimension > LabelImageType;
typedef unsigned char OutputPixelType;
typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
typedef itk::ImageFileReader< OutputImageType > ReaderType;
typedef itk::ImageFileWriter< OutputImageType > WriterType;
typedef itk::AttributeImageLabelObject< LabelPixelType, Dimension,
OutputImageType > LabelObjectAttributeType;
typedef itk::LabelMap<LabelObjectAttributeType> LabelMapAttributeType;
typedef itk::BinaryImageToShapeLabelMapFilter
<OutputImageType, LabelMapAttributeType> LabelMapperAttributeType;
typedef itk::LabelMapToLabelImageFilter<LabelMapAttributeType,
OutputImageType> LabelMapToLabelImageFilterType;
typedef itk::BoundingBoxImageLabelMapFilter<LabelMapAttributeType>
BBILabelMapFilter;
typedef itk::ImageFileWriter< OutputImageType > WriterType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName( argv[1] );
LabelMapperAttributeType::Pointer labelerAttribute =
LabelMapperAttributeType::New();
labelerAttribute->SetInput( reader->GetOutput() );
labelerAttribute->SetComputePerimeter( false );
labelerAttribute->SetOutputBackgroundValue(0);
labelerAttribute->Update();
//select the item with the label 1
const LabelObjectAttributeType* labelObjectAttribute =
toBBILabelMap->GetOutput()->GetLabelObject(1);
BBILabelMapFilter::Pointer toBBILabelMap = BBILabelMapFilter::New();
toBBILabelMap->SetInput(labelMapAttribute);
toBBILabelMap->Update();
Thanks.
Best
EM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-developers/attachments/20131112/913469f5/attachment.htm>
More information about the Insight-developers
mailing list