[Insight-users] ImageSpatialObject interpolation and transformation problem
Luis Ibanez
luis.ibanez at kitware.com
Tue May 25 18:00:15 EDT 2010
Hi Matthias,
Thanks for the detailed description
of what you are doing.
1) Please note that you should instantiate
the SpatialObject as a 3D one, given that
you need to rotate it and translate it in a
3D space. Your UltraSound slice is a thin
sampling of a 3D region.
2) To be consistent with (1), then you will load
the Ultrasound slice as a 3D image whose
size along the Z direction is 1.
3) Applying the Tracking transform values to the
SpatialObject transform will indeed be a natural
way of placing it in the right location in space.
As usual, you will have to pay attention to the
direction of the transformation. That is, make
sure that you set the transform from the Image
to the parent.
4) The interpolator that is built-in the ImageSpatial
Object will not do the 3D interpolation for you
(that will have been nice though.... :-) )
The interpolator is intended just to help you
query the values of 3D points at non-image-grid
positions.
You probably will need this intepolator as a helper
for getting in-plane values of your Ultrasound slices
while you populate the full 3D image.
5) You will have to implement the interpolation
scheme by which you spread out the values
from the ultrasound slices in order to fill up
a 3D volume.
The approach of the vtkGaussianSplatter is
one good candidate among many other options.
A critical factor here will be the spacing that
you get between your Ultrasound slices, as
well as the degree to which they are tilted one
with respect to the next.
Finally,
You may find interesting to look at the following
papers in the Insight Journal:
http://www.insight-journal.org/search/?search=ultrasound
A) "Real-Time Ultrasound Image Analysis for the Insight Toolkit"
http://www.insight-journal.org/browse/publication/36
http://hdl.handle.net/1926/43
B) "An open-source real-time ultrasound reconstruction system
for four-dimensional imaging of moving organs"
Pace D., Gobbi D., Wedlake C., Gumprecht J.,
Boisvert J., Tokuda J., Hata N., Peters T.
http://www.insight-journal.org/browse/publication/655
http://hdl.handle.net/10380/3083
C) "An Open-Source Solution for Interactive Acquisition,
Processing and Transfer of Interventional Ultrasound Images"
Boisvert J., Gobbi D., Vikal S., Rohling R.,
Fichtinger G., Abolmaesumi P.
http://www.insight-journal.org/browse/publication/618
http://hdl.handle.net/10380/1459
Regards,
Luis
------------------------------------------------------------------------------------------------------------
On Tue, May 11, 2010 at 2:32 PM, Matthias Mucha <matthiasmucha at gmx.de> wrote:
> Dear List,
>
> I want to use the itk::ImageSpatialObject to store ultrasound-images with position-data (tracking-data) and then use an interpolation-method to build a 3D-Volume. I'm not familiar with itk::ImageSpatialObject so I have some questions about the use of it. Up to now I defined an itk::ImageSpatialObject and filled it with an ITK-Image.
>
> typedef SpatialObjectType::TransformType TransformType;
> ImageSpatialObject::Pointer imageSO = ImageSpatialObject::New();
>
> //set the 2D-ITK-Image into a spatial object
> imageSO->SetImage(m_CapturedFrame);
>
> Need I to use the SpatialObjectType::TransformType to apply the tracking-data (translation and rotation) for each ultrasound-image?
>
> Is it possible to define a 3-dimensional itk::ImageSpatialObject, fill it with all 2D-ultrasound-ImageSpatialObjects and then use the SetInterpolator-method from itk::ImageSpatialObject to get a 3D-volume when I want to render it? Or is it better to use the vtkGaussianSplatter for this task?
>
> Best regards!
>
> Matthias Mucha
> --
> _____________________________________
> 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.html
>
> 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
>
More information about the Insight-users
mailing list