[vtkusers] Question about image resampling

David Gobbi dgobbi at atamai.com
Mon Oct 30 11:26:23 EST 2006


Pankaj Daga wrote:
> Hi David,
>
> Thanks for the tip! However, I am not using AutoCropOutput() and all 
> that as it never worked how I intended.

Yeah, that method is not one of my favorites. Not everyone wants their 
images to be cropped the same way, so the only way "AutoCrop" could be 
really automatic is if it could read minds.  The method does work as the 
documentation describes, though.

> I mean, I could set the output extent etc. by hand again, but the 
> output of the reslicer is attached to a viewer and that would cause 
> the viewer to also change its output.
>
> So, I was thinking that I could just resample the image again and that 
> should take care of everything.

Oh, that explains things.  If you need two reslicers, here is what you 
can for the second one:

reslice2 = vtkImageReslice::New();
reslice2->SetInput(reslice1->GetOutput());
reslice2->SetInformationInput(reslice1->GetInput());
reslice2->TransformInputSamplingOff();
reslice2->SetInterpolationModeToLinear();

The combination of SetInformationInput() to set the original image, and 
TransformInputSamplingOff(), will cause vtkImageReslice to produce an 
image with the same extent, spacing, and origin as the original image, 
if this is what you want.

If this isn't what you want, you might have to manually set the 
OutputExtent(), OutputSpacing(), and OutputOrigin().  One of the best 
ways to do this is to add an observer for ExecuteInformationEvent to the 
reslicer.  That way, you can add a callback that will adjust the 
information every time that reslice executes.

 - David

>
> Best regards,
>
> Pankaj
>
> On 10/30/06, * David Gobbi* <dgobbi at atamai.com 
> <mailto:dgobbi at atamai.com>> wrote:
>
>     Hi Pankaj,
>
>     I think that what you want is this:
>
>     reslice->TransformInputSamplingOff();
>     reslice->AutoCropOutputOff();
>
>     That should cause vtkImageReslice to automatically produce an output
>     with the same spacing, origin, and dimensions as the input, so
>     that you
>     will not have to re-resample the output.
>
>     - David
>
>
>
>     Pankaj Daga wrote:
>     > Hi everyone,
>     >
>     > I do some oeprations on an image and then I need to save a resulting
>     > image. Now to generate the resulting image, I use the output from
>     > vtkImageReslice which has changed the image dimensions according to
>     > the output spacing and output extent parameters. However, I want to
>     > save the resulting image with the same size as the input image.
>     >
>     > Does anyone know what is the best way to resample the output
>     image and
>     > convert it to the same image dimensions as the input image? Some
>     code
>     > snippet would be really appreciated.
>     >
>     > Best wishes,
>     > P
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > This is the private VTK discussion list.
>     > Please keep messages on-topic. Check the FAQ at:
>     http://www.vtk.org/Wiki/VTK_FAQ
>     > Follow this link to subscribe/unsubscribe:
>     > http://www.vtk.org/mailman/listinfo/vtkusers
>     >
>
>




More information about the vtkusers mailing list