[vtkusers] Joining two images

David Pont david_pont at hotmail.com
Thu Sep 20 17:23:56 EDT 2001

It works !!!,
   many thanks to David Gobbi for pointing me in the right direction. The 
final trick was to replace the suggested:


with an extent calculated to encompass both my input images, after their 
translation and rotation. I did this using: the input extent and 
vtkTransform SetPoint and GetPoint to figure out where the corners of the 
images would be after transformation. I now have two images aligned, blended 
and saved in a TIFF. Thanks again.

  Dave Pont

>From: David Gobbi <dgobbi at irus.rri.ca>
>To: <david.pont at forestresearch.co.nz>
>CC: <vtkusers at public.kitware.com>
>Subject: Re: [vtkusers] Joining two images
>Date: Wed, 19 Sep 2001 00:47:47 -0400 (EDT)
>Hi David,
>By default, vtkImageReslice will automatically adjust
>the Origin of the output so that the output image
>is centered.  This is useful for when people want to
>do simple operations like image rotation, permuting
>axes, or flipping the image but it effectively nullifies
>any translation as far as the appearance of the output
>image is concerned (i.e. the data coordinates of the image
>have been translated, but the image looks the same).
>The best thing is to set the output Spacing, Origin, and Extent
>to the same as the input Spacing, Origin and Extent:
>In newer versions of vtkImageReslice, a short way of doing
>exactly the same thing is
>The SetInformationInput() method is also very useful if
>you want the output sampling of vtkImageReslice to match
>that of of the image you are registering to, e.g.
>One of the confusions with the vtk imaging pipeline is
>that some filters operate in terms of voxels (i.e.
>structured coordinates) and some filters operate in
>terms of data coordinates.  In the geometry pipeline,
>everything is done in data coordinates so there is
>no confusion.  Personally, I wish that the imaging
>pipeline was the same way.
>I hope this helps.
>  - David
>   David Gobbi, MSc                       dgobbi at irus.rri.ca
>   Advanced Imaging Research Group
>   Robarts Research Institute, University of Western Ontario
>On Wed, 19 Sep 2001, David Pont wrote:
> > I have changed my pipeline to use vtkImageBlend instead of 
> > and now I get some output which is almost what I want. The pipeline is:
> >
> > vtkTIFFReader
> > vtkImageReslice
> >   vtkTransform::New();
> >   vtkTransform->RotateWXYZ( rotate_angle );
> >   vtkTransform->Translate( translate_X, translate_Y, 0 );
> > vtkImageReslice->SetResliceTransform( above vtkTransform );
> > vtkImageReslice->Update();
> > vtkImageReslice->GetOutput()->GetWholeExtent();
> >     to obtain the outer extent for the two images.
> > vtkImageConstantPad->SetOutputWholeExtent();
> >     with the outer extent
> > vtkImageBlend
> > vtkTIFFWriter
> >
> > The output is almost perfect: two transformed images overlayed and saved 
> > a TIFF file; except that the Translate appears to do nothing. Any 
>experts in
> > Reslice know what I might be doing wrong?. I am surprised I get the 
> > but not the Translate. Do they need separate transforms, separate 
> >
> >   regards
> >      Dave Pont
> >
> > _________________________________________________________________
> > Get your FREE download of MSN Explorer at 
> >
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at: 
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/mailman/listinfo/vtkusers
> >
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at: 
>Follow this link to subscribe/unsubscribe:

Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp

More information about the vtkusers mailing list