[vtkusers] stretching

Luis Ibanez luis.ibanez at kitware.com
Thu May 26 15:59:11 EDT 2005


Hi Isabelle,

In order to have more control over the rendering of the image
you should replace the vtkImageViewer class with the individual
components used in ImageSliceViewer, namely:


       vtkImageActor     * m_Actor;
       vtkRenderer       * m_Renderer;
       vtkCamera         * m_Camera;
       vtkRenderWindow   * m_RenderWindow;



The vtkImageViewer is actually a grouping of

       vtkRenderWindow    *RenderWindow;
       vtkRenderer        *Renderer;
       vtkImageMapper     *ImageMapper;
       vtkActor2D         *Actor2D;
       vtkRenderWindowInteractor *Interactor;
       vtkInteractorStyleImage *InteractorStyle;


into a single class, just for convenience of use.
http://www.vtk.org/doc/nightly/html/classvtkImageViewer.html



   Regards,


       Luis



--------------------------
Renaud Isabelle wrote:

> Thanks, Luis, for your advice. I took a look at the example supplied in 
> ImageSliceViewer. And I implement what is inside SetupCamera().
>  
> However, where I am going really *crazy* :-D, is that *all lines of code 
> that I am implementing is not taken into account*. The result is still 
> the same.
>  
> Here is what I did:
>  
> //(vtkImageViewer*) viewer
> imageInitiale = reader->GetOutput();
> viewer->SetInput(imageInitiale);
>  
>  //display the image in the frame
>  *viewer->SetParentId(this->m_hWnd);*
>  
>  //to fit the image to the render window, 
>  float spacing[3] = {imageInitiale->GetSpacing()[0],
>       imageInitiale->GetSpacing()[1],
>       imageInitiale->GetSpacing()[2]};
>  double max = MAX(spacing[0]*width,spacing[1]*height);
> 
>  vtkCamera* camera = viewer->GetRenderer()->GetActiveCamera();
>  viewer->GetRenderer()->ResetCamera();
>  *camera->ParallelProjectionOn();
>  camera->SetParallelScale(max/2);*
>  
>  //execute
>  viewer->Render();
>  
> What`s wrong with that?
>  
> Isabelle
>  
> 
> */Luis Ibanez <luis.ibanez at kitware.com>/* a écrit:
> 
> 
>     Hi Isabelle,
> 
> 
>     Thanks for letting us know that you were using
>     VTK for visualization.
> 
>     ...You should have said that from the beginning :-)
> 
> 
> 
>     Please look at the code in the file
> 
> 
>     ImageSliceViewer.cxx
> 
> 
>     in the directory
> 
>     InsightApplications/
>     LiverTumorSegmentation/
> 
> 
>     http://www.itk.org/cgi-bin/viewcvs.cgi/LiverTumorSegmentation/ImageSliceViewer.cxx?rev=1.3&root=InsightApplications&view=log
> 
> 
>     You will see in this class how to manage
>     the scale of your image in the method
>     SetupCamera(), in lines 118-185.
> 
> 
> 
>     BTW, I'm assuming that you want to stretch the
>     image *WITHOUT* changing its aspect ratio. You
>     probably don't want to change the aspect ratio
>     of a Medical Image.
> 
> 
>     Note that *iff* your image has correctly specified
>     its pixel size in X and Y. VTK will tak! e this pixel
>     size into account at the moment of rendering the
>     image.
> 
> 
> 
>     Regards,
> 
> 
>     Luis
> 
> 
> 
>     ------------------------
>     Renaud Isabelle wrote:
>      > Hi everybody,
>      >
>      > My job is to implement an MFC interface for medical image
>     segmentation
>      > purposes. Before, my lab was working on Matlab to display their
>     data.
>      > Default behavior of matlab is to display my image in parallel
>     mode and
>      > stretch the image to fill the best my window. It was a convenient
>     way to
>      > see our 1552*128 images. That is exactly what I want to reproduce
>     in my
>      > interface.
>      >
>      > So, what I am desperately trying to do is to stretch my image
>     (different
>      > scale factors in x and y) to fit my render window.
>      >
>      >
>     viewer->GetRenderer()->GetActiveCamera()->*ParallelProjectionOn*() is
>      > OK, but
>      > viewer->GetRenderer()->GetActiveCamera()->*SetParallelScale*() scale
>      > not ! stretch my image.
>      > There should be a way to stretch.
>      >
>      > Isabelle
>      >
>      >
>     ------------------------------------------------------------------------
>      > Découvrez le nouveau Yahoo! Mail : 1 Go d'espace de stockage pour
>     vos
>      > mails, photos et vidéos !
>      > Créez votre Yahoo! Mail
>      >
>      >
>      >
>      >
>      >
>     ------------------------------------------------------------------------
>      >
>      > _______________________________________________
>      > 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
> 
> 
> 
> ------------------------------------------------------------------------
> Découvrez le nouveau Yahoo! Mail : 1 Go d'espace de stockage pour vos 
> mails, photos et vidéos !
> Créez votre Yahoo! Mail 
> <http://us.rd.yahoo.com/mail_fr/mail_campaigns/splash/taglines_1go/default/*http://fr.promotions.yahoo.com/mail/creer28.html> 
> 






More information about the vtkusers mailing list