[vtkusers] Extract a curvilinear slice of volume

David Gobbi david.gobbi at gmail.com
Wed Dec 16 12:15:04 EST 2009


It's not an easy thing to do.  Here's are possible methods:


1) If you want the result to be an "image", then do the following:

Create a grid (i.e. a vtkImageData) of scalar type "float" and 3
scalar components.  Set the extent, origin, and position to be the
same as that of the slice that you want to display.

Populate the grid with vectors that go from the voxel positions in
your slice (i.e. flat space) to the corresponding voxel position that
you want to interpolate from in the original image (i.e. the position
along your curved surface).

You can use this grid to make a vtkGridTransform, and you can use the
GridTransform in the SetTransform() method of vtkImageReslice.


2) If you don't care what the data type of the output will be, you can
make a colored polydata surface as follows:

Create a polydata surface mesh i.e. create the geometry of the surface
that you wish to extract.  Use very small polygons, i.e. the polygons
should be about the same size as your pixels.

Use vtkProbeFilter to probe your volume and set the scalars of the
surface mesh.  Before doing this, you should convert the image to RGB
with vtkImageMapToColors.


Good luck, I've never tried these methods myself but there is no
reason why they shouldn't work.

    David


On Wed, Dec 16, 2009 at 9:01 AM, toulgen <toulgen at gmail.com> wrote:
>
> Hi vtk-users,
>
> To extract the axial, the coronal and the sagittal slice I use the
> vtkImageReslice class.
>
> I want to extract a curvilinear slice of volume?
>
> What is class I can use?
>
> Thx



More information about the vtkusers mailing list