[Insight-users] getting an flat picture from dicom volume

Dan Mueller dan.muel at gmail.com
Mon Feb 16 02:42:57 EST 2009


Hi Hadi,

> 1- what's the itk coordination system ? is it
> left-handed or right-handed ? and is it same as vtk ?

I don't use VTK much, so I'm not sure if there is a difference. From
monitoring the mailing list in the past, I believe there is a subtle
difference...

> 2- about center point unit, is it pixel or mm or .. ?
> and do i need to calculate Pixel Spacing and Slice
> Thickness when i want to pass the center point to
> LookAtTransformInitializer object ?

ITK has three ways to represent locations: discrete indices
(itkIndex), continuous indices (itkContinuousIndex) and physical point
(itkPoint). The center point is an itkPoint, so the unit is mm (or the
physical units represented by your image).

> 3- the center point is the center of output plane ? or
> is it the left-bottom of output plane ?

The first, the center of the output plane.

I would recommend using the itkObliqueSectionImageFilter, which
internally uses the LookAtTransformInitializer and takes care of many
of the finer details. You simply need to specify the OutputSize,
OutputSpacing, OutputOrigin, and then specify the plane (center of
plane and direction of plane). Browse through Testing/LookAtTests.cxx
for example usage.

Hope this helps.

Regards, Dan

2009/2/14 Hadi Rezaee <hadi_rezaie at yahoo.com>:
>
> Dear Dan,
>
> Thanks alot for reply.
>
> some basic questions about itk and the classes you've
> provided:
>
> 1- what's the itk coordination system ? is it
> left-handed or right-handed ? and is it same as vtk ?
>
> 2- about center point unit, is it pixel or mm or .. ?
> and do i need to calculate Pixel Spacing and Slice
> Thickness when i want to pass the center point to
> LookAtTransformInitializer object ?
>
> 3- the center point is the center of output plane ? or
> is it the left-bottom of output plane ?
>
>
> Regards,
>
>
> --- Dan Mueller <dan.muel at gmail.com> wrote:
>
>> Hi Hadi,
>>
>> You might also be interested in the following
>> Insight Journal article:
>>
>>
> http://www.insight-journal.org/browse/publication/168
>>
>> This contribution provides a "look at" transform
>> initializer, and
>> ObliqueSectionImageFilter which extracts a slice
>> from a 3-D image at a
>> given point and direction.
>>
>> Hope this helps.
>>
>> Regards, Dan
>>
>> 2009/2/9 Hadi Rezaee <hadi_rezaie at yahoo.com>:
>> >
>> > Dear Mr. Luis,
>> >
>> > Thanks alot for your time and reply.
>> > i think what i am looking for is something called
>> MPR
>> > (multi-planar reconstruction), or resampling an
>> image
>> > in an arbitrary orientation as you mentioned.
>> >
>> > I just googled the web and found one of your posts
>> > about introducing the suitable classses for
>> > implementing MPR:
>> >
>> > a) ResampleImageFilter
>> > b) VersorRigid3DTransform
>> > c) LinearInterpolator (or BSpline is you have
>> >   a powerful computer and what a higher quality
>> >   resampling.
>> >
>> >
>> > Let me study these classes first and i will ask
>> you my
>> > questions :)
>> >
>> > Thanks alot.
>> >
>> > Regards,
>> >
>> >
>> >
>> > --- Luis Ibanez <luis.ibanez at kitware.com> wrote:
>> >
>> >>
>> >>
>> >> Hi Hadi,
>> >>
>> >> Thanks for your clarifications and for posting
>> the
>> >> pictures.
>> >>
>> >> I'm afraid however that your description is still
>> >> confusing.
>> >>
>> >> What you call a "flat picture":
>> >>
>> >>      is it a slice ?
>> >>      or a projection image ?
>> >>
>> >> Here is what I can suggest,
>> >>
>> >> Please download Slicer  (www.slicer.org) and play
>> >> with its
>> >> visualization functioalities (slicing and volume
>> >> rendering)
>> >> and let us know which one of them is closer to
>> what
>> >> you
>> >> want to do.
>> >>
>> >> With that information we will be able to suggest
>> you
>> >> way
>> >> of doing this by using ITK and/or VTK.
>> >>
>> >>
>> >> --
>> >>
>> >> If the diagram in the second picture is what you
>> >> want to
>> >> get, then you could do this
>> >>
>> >> in ITK by using the itk::ResampleImageFilter,
>> >>
>> >
>>
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1ResampleImageFilter.html
>> >>
>> >> or in VTK by using the vtkImageReslice class
>> >>
>> >
>>
> http://www.vtk.org/doc/nightly/html/classvtkImageReslice.html
>> >>
>> >> Note that in either case you have to pass to the
>> >> filter
>> >> the information about the orientation of the
>> line.
>> >>
>> >>
>> >>
>> >>     Regards,
>> >>
>> >>
>> >>         Luis
>> >>
>> >>
>> >> -------------------
>> >> Hadi Rezaee wrote:
>> >> > Dear Luis,
>> >> >
>> >> > Thanks alot for your reply.
>> >> >
>> >> > I'm so sorry i am very newbie on this field.
>> >> > I've checked the samples but i couldn't use the
>> >> code
>> >> > for my purpose, because i simply donno about
>> >> concepts.
>> >> >
>> >> > I'm also worry that i couldnt say my question
>> >> clearly.
>> >> > So, please check out the picture:
>> >> >
>> >> >
>> >>
>> >
>>
> http://www.freeimagehosting.net/uploads/c9c85bac6f.jpg
>> >> >
>> >> > As you can see in the picture, the user specify
>> a
>> >> line
>> >> > in first picture of a dicom serie.
>> >> > So i should make an flat picture from where the
>> >> user
>> >> > wants to get. this flat picture should be
>> >> generated
>> >> > from the volume i have created for this dicom
>> >> serie.
>> >> >
>> >> > about Vtk i have a question, i used
>> >> > vtkImagePlaneWidget object to store and display
>> a
>> >> > selected slice :
>> >> >
>> >> >
>> >>
>> >
>>
> http://www.freeimagehosting.net/image.php?b3495f819c.jpg
>> >> >
>> >> > but i donno by which method i can save the
>> >> > vtkImagePlaneWidget object output to jepg
>> image.
>> >> >
>> >> > Please help me.
>> >> >
>> >> > Regards,
>> >> >
>> >> >
>> >> > --- Luis Ibanez <luis.ibanez at kitware.com>
>> wrote:
>> >> >
>> >> >
>> >> >>Hi Hadi,
>> >> >>
>> >> >>You may want to use the ProjectionFilters:
>> >> >>
>> >> >>See the derived classes of:
>> >> >>
>> >> >
>> >> >
>> >>
>> >
>>
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1ProjectionImageFilter.html
>> >> >
>> >> >>A common choice is to use the
>> >> >>
>> >> >>      itkMaximumProjectionImageFilter.h
>> >> >>
>> >> >>
>> >> >>Please note that these filters will compute
>> >> >>projections
>> >> >>for lines that are parallel to the image axis.
>> >> >>
>> >> >>If you have a line that is not parallel then
>> you
>> >> >>should consider the methods used for Digitally
>> >> >>Reconstructed
>> >> >>Radiographs (DRR) illustrated in
>> >> >>
>> >> >>
>> >> >>   InsightApplications/
>> >> >>       IntensityBased2D3DRegistration/
>> >> >>                 GenerateProjection.cxx
>> >> >>
>> >> >>
>>
> === message truncated ===
>
>
> -----
> Hadi Rezaee
> GalaxyRoad.com
>
>
>
>


More information about the Insight-users mailing list