[vtkusers] vtkImageActor and scaling

endlosschleife1 endlosschleife1 at googlemail.com
Mon Nov 29 10:24:24 EST 2010


Hi all,

I'm a bit confused about how cameras are initialized. I would like to scale
a 2D image (scale a DICOM image to best fit a viewport size). I first did
this via vtkImageResample and that works fine, but now I would like to try
this with accelarated scaling and so I wanted to do that as part of the
visualization pipeline (I hope that means that it is actually using OpenGL).
I replaced my original vtkActor2D/vtkImageMapper with a vtkImageActor. The
following works (pseudo code):

Variant 1:
- add imageActor to renderer, and renderer to renderwindow. Then call
Render() on renderwindow.
-> The image displays as expected in the original size.

Variant 2:
- same as in Variant 1 (including Render() call)
- renderer->GetActiveCamera()->ParallelProjectionOn()
- renderer->GetActiveCamera()->Zoom(zoomFactor);
-> The image displays with the desired scaling.

But variant 2 only works because I called Render() first. I assume this
somehow initializes the camera of the renderer with exactly the attributes
that I need, but when I call GetActiveCamera without rendering first this
(just calling the getter-method) will already) will give a different result
(in my case a grey box in the upper right corner of the viewport). I'm now
about to reverse engineer the camera settings after variant 1 was executed
and set all the camera attributes to the desired initial values (position,
viewUp, clipping range etc.), but I'm wondering if I'm just missing the more
appropriate and convenient way to do this (after all the vtkImageActor seems
to be all about convenience).

Thank you.

Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20101129/4489bb13/attachment.htm>


More information about the vtkusers mailing list