[ITK-users] Getting different labels slice by slice

Pietro Nardelli pie.nardelli at gmail.com
Mon May 26 09:08:44 EDT 2014


Hi Sarah,

I guess that the itkChangeInformationImageFilter[1] might help you sort
your issue with the spacing out.

HTH,
Pietro

[1]
http://www.itk.org/Doxygen/html/classitk_1_1ChangeInformationImageFilter.html


2014-05-26 13:33 GMT+01:00 Sarah Basti <ahalabasti at hotmail.com>:

> Hi Brad!
>
> 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 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
> 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?
>
> Thank you very much for your help,
>
> Sarah
> ------------------------------
> Subject: Re: [ITK-users] Getting different labels slice by slice
> From: blowekamp at mail.nih.gov
> Date: Sun, 25 May 2014 11:32:50 -0400
>
> CC: insight-users at itk.org
> To: ahalabasti at hotmail.com
>
> Hello,
>
> If you can't find an example, it's frequently useful to search through the
> test. Here is one that may be helpful:
>
> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Filtering/ImageSources/test/itkPhysicalPointImageSourceTest.cxx
>
> It's the bits not include in your code segment which aren't correct :)
>
> 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."
>
> 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>.
>
> Here is how I would do this in SimpleITK for Python:
>
> import SimpleITK as sitk
>
> img = sitk.Image([100,100,100], sitk.sitkUInt8)
>
> idxImage = sitk.PhysicalPointSource(sitk.sitkVectorUInt32,
> size=img.GetSize())
>
> zidxImage = sitk.VectorIndexSelectionCast(idxImage,2)
>
> 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.
>
> Brad
>
> [1]
> http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html
>
> On May 23, 2014, at 10:26 AM, Sarah Basti <ahalabasti at hotmail.com> wrote:
>
> I tried to do the following:
>
> typedef itk::PhysicalPointImageSource<OutputImageType>
> physicalPointImageType;
> physicalPointImageType::Pointer physicalImage = physicalPointImageType
> ::New();
> physicalImage->SetSize(reader->GetOutput()->GetLargestPossibleRegion
> ().GetSize());
>
> physicalImage->Update();
>
>
> I get this error though:
>
> In file included from
> /home/Support/Slicer-SuperBuild-Release/ITKv4/Modules/Filtering/ImageSources/include/itkPhysicalPointImageSource.h:81:0,
>                  from
> /home/acorvo/Desktop/SlicerModules/Cross-Section-Location/Source/CrossSectionLocation.cxx:18:
> /home/Support/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]’:
> /home/Desktop/SlicerModules/Cross-Section-Location/Source/CrossSectionLocation.cxx:238:1:
>   instantiated from here
> /home/Support/Slicer-SuperBuild-Release/ITKv4/Modules/Filtering/ImageSources/include/itkPhysicalPointImageSource.hxx:71:7:
> error: subscripted value is neither array nor pointer
> make[2]: ***
> [CMakeFiles/CrossSectionLocation.dir/CrossSectionLocation.cxx.o] Error 1
> make[1]: *** [CMakeFiles/CrossSectionLocation.dir/all] Error 2
> make: *** [all] Error 2
>
> Do you know what that might mean? Any idea?
>
> Thank you,
> Sarah
> ------------------------------
> From: ahalabasti at hotmail.com
> To: blowekamp at mail.nih.gov
> Date: Fri, 23 May 2014 13:17:13 +0000
> CC: insight-users at itk.org
> Subject: Re: [ITK-users] Getting different labels slice by slice
>
> Hi Brad,
>
> 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.
>
> Thank you very much!!
> Sarah
> ------------------------------
> Subject: Re: [ITK-users] Getting different labels slice by slice
> From: blowekamp at mail.nih.gov
> Date: Fri, 23 May 2014 07:48:19 -0400
> CC: insight-users at itk.org
> To: ahalabasti at hotmail.com
>
> Hello Sarah,
>
> 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.
>
> Good luck,
> Brad
>
> [1]
> http://www.itk.org/Doxygen/html/classitk_1_1PhysicalPointImageSource.html
>
> On May 23, 2014, at 6:50 AM, Sarah Basti <ahalabasti at hotmail.com> wrote:
>
> Hello guys,
>
> 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.
> 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!
>
> I thank you all in advance!!
>
> Sarah
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
>
> _____________________________________ Powered by www.kitware.com Visit
> other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html Kitware offers ITK
> Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php Please keep messages
> on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow
> this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20140526/9e8bb3e8/attachment.html>


More information about the Insight-users mailing list