<div dir="ltr">Hi Michael,<div><br></div><div>That snippet of code should do what you expect (although, as Brad suggested, it would be a good idea to validate it). "<span style="color:rgb(0,0,0);font-size:13px">image3Dred" is used as the feature image. This is the image from which the statistics are calculated. The label-map input defines the regions of the feature image for the calculations.</span></div><div><span style="color:rgb(0,0,0);font-size:13px"><br></span></div><div><span style="color:rgb(0,0,0);font-size:13px">By the way, </span><font color="#000000">you could use a single filter - BinaryImageToStatisticsLabelMapFilter [1], to achieve the same.</font></div><div><font color="#000000"><br></font></div><div><font color="#000000"><br></font></div><div><font color="#000000">[1] <a href="http://www.itk.org/Doxygen/html/classitk_1_1BinaryImageToStatisticsLabelMapFilter.html">http://www.itk.org/Doxygen/html/classitk_1_1BinaryImageToStatisticsLabelMapFilter.html</a><br></font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 8, 2014 at 1:44 PM, Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I am not sure anyone else can validate your code for you.<br>
<br>
What I'd recommend is developing some test images with known answers, and then adding them at test to you code to validate the results. This testing process can easily be done with cmake and ctest.<br>
<br>
Brad<br>
<div class="HOEnZb"><div class="h5"><br>
On Dec 8, 2014, at 7:07 AM, Michael Meuli <<a href="mailto:michael.meuli@gmail.com">michael.meuli@gmail.com</a>> wrote:<br>
<br>
> Hi all<br>
><br>
> I've written a little program to analyse the colocalization of<br>
> bacteria and lysosome within macrophages. As main result it should<br>
> write the mean values of pixels located in the objects (bacteria) but<br>
> taking the value from the channel used to visualize the lysosomes<br>
> (image3Dred) into a file.<br>
> Image acquisition is done with a fancy confocal laser scanning<br>
> microscope. Bacteria, lysosomes and the nuclei of the macrophages are<br>
> labeld with different fluorochromes. As the cells are seeded as<br>
> monolayer, the images are quite flat and maximum intensity projections<br>
> are done to visually check the result.<br>
><br>
> The programm compiles and runs but I'm not yet fully convinced if it<br>
> does what it should do.<br>
> I'm not a professional programmer and wanted to ask if some itk guru<br>
> could have a look at it.<br>
> The programm and some more information can be found here:<br>
><br>
> <a href="https://github.com/michaelmeuli/bactelize" target="_blank">https://github.com/michaelmeuli/bactelize</a><br>
><br>
> My main question is, if the following piece of code really does what<br>
> it shoud do:<br>
><br>
> BinaryImageToShapeLabelMapFilterType::Pointer<br>
> binaryImageToShapeLabelMapFilter =<br>
> BinaryImageToShapeLabelMapFilterType::New();<br>
> binaryImageToShapeLabelMapFilter->SetInput(binaryimage3Dbacteria);<br>
> binaryImageToShapeLabelMapFilter->Update();<br>
> ...<br>
> StatisticsLabelMapFilterType::Pointer statisticsLabelMapFilter =<br>
> StatisticsLabelMapFilterType::New();<br>
> statisticsLabelMapFilter->SetInput1(binaryImageToShapeLabelMapFilter->GetOutput());<br>
> statisticsLabelMapFilter->SetInput2(image3Dred);<br>
> statisticsLabelMapFilter->InPlaceOn();<br>
> statisticsLabelMapFilter->Update();<br>
><br>
> unsigned int bacteriacount =<br>
> statisticsLabelMapFilter->GetOutput()->GetNumberOfLabelObjects();<br>
> for(unsigned int i = 0; i <<br>
> statisticsLabelMapFilter->GetOutput()->GetNumberOfLabelObjects(); i++)<br>
> {<br>
> StatisticsLabelMapFilterType::OutputImageType::LabelObjectType*<br>
> labelObjectMe =<br>
> statisticsLabelMapFilter->GetOutput()->GetNthLabelObject(i);<br>
> double mean = labelObjectMe->GetMean();<br>
> fileout << mean << "\t";<br>
> std::cout << "Mean value of object with label " <<<br>
> static_cast<int>(labelObjectMe->GetLabel()) << " in lysosomechannel: "<br>
> << mean << std::endl;<br>
> }<br>
> fileout << "\n";<br>
> fileout.close();<br>
> std::cout << "Total bacteria counted (in statisticsLabelMapFilter): "<br>
> << bacteriacount << std::endl;<br>
> std::cout << std::endl;<br>
><br>
><br>
> Do I really get the mean value from within my objects (bacteria) but<br>
> calculating it using the values in image3Dred because I did:<br>
> statisticsLabelMapFilter->SetInput2(image3Dred);<br>
> and<br>
> double mean = labelObjectMe->GetMean();<br>
><br>
> Best regards<br>
> Michael Meuli<br>
> _______________________________________________<br>
> Community mailing list<br>
> <a href="mailto:Community@itk.org">Community@itk.org</a><br>
> <a href="http://public.kitware.com/mailman/listinfo/community" target="_blank">http://public.kitware.com/mailman/listinfo/community</a><br>
<br>
_______________________________________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org">Community@itk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/community" target="_blank">http://public.kitware.com/mailman/listinfo/community</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Regards,<br>Girish</div></div>
</div>