[vtkusers] Re: turning auto scaling off in vtk
anja.ende at googlemail.com
Thu Aug 17 03:47:14 EDT 2006
Goodwin & Obada,
Thanks for your replies. I will play around with it today and if no joy, I
will stick with vtkImageViewer.
Thanks again :)
On 17/08/06, Obada Mahdi <omahdi at gmx.de> wrote:
> Hi Anja!
> Anja Ende wrote:
> [undistorted display of preprocessed image using vtkImageViewer2]
> > Another curious thing is that if I do not call ResetCamera in my derived
> > class, the image gets displayed with a very high zoom factor!
> > I really do not understand what is happening with this function here.
> > Please, if anyone has some thoughts on this, please please share!
> Some thoughts, coming up:
> According to the documentation, vtkImageViewer2 provides a simple 3D
> scenario that places an vtkImageActor into the scene (facing the
> camera). In particular, displaying an image this way involves other
> (projection) transforms defined by camera parameters, just like with any
> other 3D scenario.
> >> It seems to be the ResetCamera() function that rescales the image.
> What you are experiencing as "auto-scaling" is indeed a result of
> ResetCamera(), which tries to adjust camera parameters in a way such
> that all actors are visible (or, more precisely, such that the enclosing
> sphere of any actor's bounding box fits into the resulting view frustrum
> -- that's why a single rectangular image still doesn't max out the
> render window in either dimension).
> Without an initial call to ResetCamera(), camera defaults are used,
> which, in conjunction with your image dimensions and spacing, result in
> that "very high zoom factor" you mentioned.
> The vtkImageViewer wrapper class, on the other hand, uses 2D
> actors/mappers, so there is no projection transform to bother with.
> I guess the "right" way to deal with this depends on what you want to
> do. If you just want to display image data exactly as produced by your
> own filtering pipeline, you might be better off with vtkImageViewer (or
> a home-brewed analogon involving vtkActor2D/vtkImageMapper).
> If, on the other hand, you'd rather stick with vtkImageViewer2 but want
> to have more control over the transform induced by camera parameters,
> you might want to have a closer look at what vtkCamera and
> vtkRenderer::ResetCamera() do. I'd say there is a way to set up the
> camera such that the results mimic vtkImageViewer (starting with
> ParallelProjectionOn()), and calls to vtkRenderer::ResetCamera() can be
> observed and acted upon by registering for the ResetCameraEvent -- but
> frankly, I'm not sure if it is worth the effort.
> HTH, and apologies if I shared too much :-)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vtkusers