<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Oh, this is awkward, you are right, I was using unsigned short instead of int...thank you very much Brad, and sorry for that!!<div><br></div><div>Sarah<br><br><div><hr id="stopSpelling">Subject: Re: [ITK-users] Getting different labels slice by slice<br>From: blowekamp@mail.nih.gov<br>Date: Thu, 29 May 2014 07:23:55 -0400<br>CC: pie.nardelli@gmail.com; insight-users@itk.org<br>To: ahalabasti@hotmail.com<br><br>Any reason you couldn't just use an "unsigned int" type of size 32-bits?<div><br></div><div>Brad</div><div><br><div><div>On May 29, 2014, at 6:53 AM, Sarah Basti <<a href="mailto:ahalabasti@hotmail.com">ahalabasti@hotmail.com</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div class="ecxhmmessage" style="font-size:12pt;font-family:Calibri;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><div dir="ltr">Hi guys,<div><br></div><div>I need your help for another problem I have. I managed to get all the labels with a different value. However, sometimes I happen to have more than 65536 (2^16) labels. In that case I realized that numbers starting from 0 again are assigned to the new labels. Do you know if there is any way to overcome this problem? </div><div><br></div><div>Many many thanks as usual,</div><div>Sarah<br><br><div><hr id="ecxstopSpelling">Date: Mon, 26 May 2014 14:08:44 +0100<br>Subject: Re: [ITK-users] Getting different labels slice by slice<br>From:<span class="ecxApple-converted-space"> </span><a href="mailto:pie.nardelli@gmail.com">pie.nardelli@gmail.com</a><br>To:<span class="ecxApple-converted-space"> </span><a href="mailto:ahalabasti@hotmail.com">ahalabasti@hotmail.com</a><br>CC:<span class="ecxApple-converted-space"> </span><a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>;<span class="ecxApple-converted-space"> </span><a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br><br><div dir="ltr">Hi Sarah,<div><br></div><div>I guess that the itkChangeInformationImageFilter[1] might help you sort your issue with the spacing out. </div><div><br></div><div>HTH,</div><div>Pietro</div><div><br></div><div>[1]<a href="http://www.itk.org/Doxygen/html/classitk_1_1ChangeInformationImageFilter.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1ChangeInformationImageFilter.html</a></div></div><div class="ecxgmail_extra"><br><br><div class="ecxgmail_quote">2014-05-26 13:33 GMT+01:00 Sarah Basti<span class="ecxApple-converted-space"> </span><span dir="ltr"><<a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a>></span>:<br><blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex;"><div><div dir="ltr">Hi Brad!<div><br></div><div>Thank you very much!! Actually, since I could not figure out how to solve the problem, I had decided to implement my own class that creates an image with the number of the slice on it. I tried the method you suggested though and it actually seems to work better...the only problem I have with it now is that the spacing of my 3D image is 0.625, so considering an unsigned short pixel type in the <span style="font-size:12pt;">PhysicalPointImageSource, two adjacent slices may have the same value...I think that I may try using float instead, but then I think that I would have the same problem </span><br>when adding the value to the original label, am I correct? For encoding both the image label and the slice index do you suggest using a VectorImage?</div><div><br></div><div>Thank you very much for your help,</div><div><br></div><div>Sarah</div><div><div><hr>Subject: Re: [ITK-users] Getting different labels slice by slice<br>From:<span class="ecxApple-converted-space"> </span><a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a><br></div>Date: Sun, 25 May 2014 11:32:50 -0400<div><div class="h5"><br>CC:<span class="ecxApple-converted-space"> </span><a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a><br>To:<span class="ecxApple-converted-space"> </span><a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a><br><br>Hello,<div><br></div><div>If you can't find an example, it's frequently useful to search through the test. Here is one that may be helpful:</div><div><a href="https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Filtering/ImageSources/test/itkPhysicalPointImageSourceTest.cxx" target="_blank">https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Filtering/ImageSources/test/itkPhysicalPointImageSourceTest.cxx</a></div><div><br></div><div>It's the bits not include in your code segment which aren't correct :)</div><div><br></div><div>From the doxygen[1]: "This image source supports image which have a multi-component pixel equal to the image dimension, and variable length VectorImages. It is recommented that the component type be a real valued type."</div><div><br></div><div>You have instantiated it with an itk::Image of unsigned char, while the filter expects a multi-component image. Such as an itk::Image of Point<float,3>, Index<int,3> or an itk::VectorImage<int, 3>. </div><div><br></div><div>Here is how I would do this in SimpleITK for Python:</div><div><br></div><div>import SimpleITK as sitk</div><div><br></div><div>img = sitk.Image([100,100,100], sitk.sitkUInt8)</div><div><br></div><div>idxImage = sitk.PhysicalPointSource(sitk.sitkVectorUInt32, size=img.GetSize())</div><div><br></div><div>zidxImage = sitk.VectorIndexSelectionCast(idxImage,2)</div><div><br></div><div>From here you can do some image arithmetic to encode both the original image label and slice index. Perhaps keeping the label id in the lower bits and the slice id in the upper.</div><div><br></div><div>Brad</div><div><br></div><div>[1]<span class="ecxApple-converted-space"> </span><a href="http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html</a></div><div><br><div><div>On May 23, 2014, at 10:26 AM, Sarah Basti <<a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a>> wrote:</div><br><blockquote><div style="font-size:12pt;font-family:Calibri;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><div dir="ltr">I tried to do the following:<div><br></div><div>typedef itk::PhysicalPointImageSource<OutputImageType> physicalPointImageType;<br><span style="font-size:12pt;">physicalPointImageType</span><span style="font-size:12pt;">::Pointer physicalImage = </span>physicalPointImageType<span style="font-size:12pt;">::New();</span><br><div style="padding:0px;text-indent:0px;">physicalImage->SetSize(reader->GetOutput()-><span style="font-size:12pt;">GetLargestPossibleRegion</span><span style="font-size:12pt;">().GetSize());</span></div><br>physicalImage->Update();<br><br><br>I get this error though:<br><div><br><div>In file included from /home/Support/Slicer-SuperBuild-Release/ITKv4/Modules/Filtering/ImageSources/include/itkPhysicalPointImageSource.h:81:0,</div><div> from /home/acorvo/Desktop/SlicerModules/Cross-Section-Location/Source/CrossSectionLocation.cxx:18:</div><div><span style="font-size:12pt;">/home/Support/</span>Slicer-SuperBuild-Release/ITKv4/Modules/Filtering/ImageSources/include/itkPhysicalPointImageSource.hxx: In member function ‘void itk::PhysicalPointImageSource<TOutputImage>::ThreadedGenerateData(const RegionType&, itk::ThreadIdType) [with TOutputImage = itk::Image<short unsigned int, 3u>, itk::PhysicalPointImageSource<TOutputImage>::RegionType = itk::ImageRegion<3u>, itk::ThreadIdType = unsigned int]’:</div><div><span style="font-size:12pt;">/home/</span>Desktop/SlicerModules/Cross-Section-Location/Source/CrossSectionLocation.cxx:238:1: instantiated from here</div><div>/home/Support/Slicer-SuperBuild-Release/ITKv4/Modules/Filtering/ImageSources/include/itkPhysicalPointImageSource.hxx:71:7: error: subscripted value is neither array nor pointer</div><div>make[2]: *** [CMakeFiles/CrossSectionLocation.dir/CrossSectionLocation.cxx.o] Error 1</div><div>make[1]: *** [CMakeFiles/CrossSectionLocation.dir/all] Error 2</div><div>make: *** [all] Error 2</div><div><br></div><div>Do you know what that might mean? Any idea?</div><div><br></div><div>Thank you,</div><div>Sarah</div><div><hr>From:<span> </span><a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a><br>To:<span> </span><a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a><br>Date: Fri, 23 May 2014 13:17:13 +0000<br>CC:<span> </span><a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a><br>Subject: Re: [ITK-users] Getting different labels slice by slice<br><br><div dir="ltr">Hi Brad,<div><br></div><div>thank you very much, I really appreciate your help!! It is indeed a great idea what you are proposing, thanks!! Only one question: is the PhysicalPointImageSource used as if it was a normal image (but having the slice number on it)? Sorry for that, but I haven't found any example and I'm quite new with ITK. <br><br>Thank you very much!!</div><div>Sarah<br><div><hr>Subject: Re: [ITK-users] Getting different labels slice by slice<br>From:<span> </span><a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a><br>Date: Fri, 23 May 2014 07:48:19 -0400<br>CC:<span> </span><a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a><br>To:<span> </span><a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a><br><br>Hello Sarah,<div><br></div><div>Here is an idea. Create an image where each slice contains the slice number, then add that to you original label image, and do a little binary logic. The goal here would be to give each slice sequentially higher numbers. Then you can runs a statistics image filter in 3D. You can use the a component from the PhysicalPointImageSource[1] as the image with the slice number.</div><div><br></div><div>Good luck,</div><div>Brad</div><div><br></div><div>[1] <a href="http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html</a></div><div><br><div><div>On May 23, 2014, at 6:50 AM, Sarah Basti <<a href="mailto:ahalabasti@hotmail.com" target="_blank">ahalabasti@hotmail.com</a>> wrote:</div><br><blockquote><div style="font-size:12pt;font-family:Calibri;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><div dir="ltr">Hello guys,<div><br></div><div>I'm quite new with ITK and I really need your help. I was able to extract/segment 3D objects from an image using the binary threshold image filter. However I'm stuck here, because I need to analyze the mean intensities of these objects in the original image, but I need to to this analysis in 2D, because I need the intensities for each slice. </div><div>As suggested in some other post I tried using the slice by slice filter, converting the binary image into a label map and then into labels. And my idea was to then use the label statistics image filter on the output of the slice by slice filter to extract the mean values. However, it turned out that although the conversion is made slice by slice, many times on adjacent slices the same label is assigned to the same object (I guess that it makes sense!), so when I use the label statistics, is like having 3D labels again, instead of a set of 2D labels. Therefore, I was wondering if there is some option to have different labels for each slice, or there is any other way to evaluate the 2D mean intensity of 3D objects!</div><div><br></div><div>I thank you all in advance!!</div><div><br></div><div>Sarah</div></div>_____________________________________<br>Powered by<span> </span><a href="http://www.kitware.com/" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br><a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br><br>Please keep messages on-topic and check the ITK FAQ at:<br><a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a></div></blockquote></div><br></div></div></div></div><br>_____________________________________ Powered by<span> </span><a href="http://www.kitware.com/" target="_blank">www.kitware.com</a><span> </span>Visit other Kitware open-source projects at<span> </span><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><span> </span>Kitware offers ITK Training Courses, for more information visit:<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><span> </span>Please keep messages on-topic and check the ITK FAQ at:<span> </span><a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><span> </span>Follow this link to subscribe/unsubscribe:<span> </span><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a></div></div></div></div></div></blockquote></div><br></div></div></div></div></div></div><br>_____________________________________<br>Powered by<span class="ecxApple-converted-space"> </span><a href="http://www.kitware.com/" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br><a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br><br>Please keep messages on-topic and check the ITK FAQ at:<br><a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a></blockquote></div></div></div></div></div></div></blockquote></div><br></div></div></div> </div></body>
</html>