[Insight-users] shape label map trouble
Robert.Atwood at diamond.ac.uk
Robert.Atwood at diamond.ac.uk
Tue Apr 30 12:58:42 EDT 2013
Hi, everyone and Gaetan:
I was recoding some old itk applets I did before itk label map was introduced to use label map and shape label object classes, I followed the example in Gaetan's paper
http://hdl.handle.net/1926/584
and used itk3.2 to try to be sure of compatibility and avoid issues of updating my old code too.
However, I find 535 ojects but they all have size of zero.
Somehow , the very simple example, translated for my code, virtually nothing changed except that the input is at the end of another pipeline , the objects always have zero size and centroid.
The label map output image looks correct.
Thanks
Robert
.... page 26 of the paper....
typedef itk::ShapeLabelMapFilter< LabelMapType > ShapeFilterType;
ShapeFilterType::Pointer shape = ShapeFilterType::New();
shape->SetInput( converter->GetOutput() );
shape->Update();
LabelMapType::Pointer labelMap = converter->GetOutput();
for( unsigned int label=1; label<=labelMap->GetNumberOfLabelObjects(); label++ )
{
// we don't need a SmartPointer of the label object here, because the reference is kept in
// in the label map.
const LabelObjectType * labelObject = labelMap->GetLabelObject( label );
std::cout << label << "\t" << labelObject->GetPhysicalSize() << "\t" << labelObject->GetCentroid()
}
Translated for my code:
220 makelabel->SetInputForegroundValue(1);
221 std::cout << makelabel << std::endl; // debugging .. dump the object
222
223 /* set the pipeline for finding the shapes */
224 std::cerr << "Now finding labelled components" << std::endl;
225 makelabel->SetInput(output);
226 getshapes->SetInput(makelabel->GetOutput());
227
228 try {
229 getshapes->Update();
230 }catch( itk::ExceptionObject & exp ) {
231 std::cerr << "ERROR: itkException caught during getshapes update !" << std::endl;
232 std::cerr << exp << std::endl;
233 std::cerr << "getshapes: " << std::endl << getshapes<< std::endl;
234 exit(0);
235 }
236
237 /* assign label map for convenience */
238
239 labelmap=makelabel->GetOutput();
240
241 std::cout<< " Number of Objects Found: " << labelmap->GetNumberOfLabelObjects() << std::endl;
242
243 //for (onum=1;onum<labelmap->GetNumberOfLabelObjects(); onum++)
244 for (onum=1;onum<3; onum++) /* degugging .. just stop after a couple of objects */
245 {
246 const ShapeType * cshape=labelmap->GetLabelObject(onum); /* I tried using predefined smartpoitner, same result*/
247 std::cout<< onum<<" "<< cshape->GetPhysicalSize() << " "<< cshape->GetCentroid() << std::endl;
248 //std::cout << cshape << std::endl;
249 cshape->Print(std::cout);
250
251 }
252
253 /* make an image of the labels */
254 l2label->SetInput(makelabel->GetOutput());
255 mwriter1->SetInput(l2label->GetOutput());
256 mwriter1->SetFileName("labelmap.tif");
257 mwriter1->Update();
____________________
Dr. Robert C. Atwood
Senior Support Scientist
Beamline I12-JEEP
The Joint Engineering and Environmental Processing Beamline
Diamond Light Source
The Harwell Science and Innovation Campus
Didcot,OXON
OX11 0DE
+44 (0) 1235 778 670
--
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
More information about the Insight-users
mailing list