[vtkusers] vtkImageViewer2 image display

tobse tobias.meisel at phacon-leipzig.de
Mon Apr 14 10:01:09 EDT 2008



Hi Alex,

you can setup the active camera via the renderer of the imageviewer.
viewer->GetRenderer()->GetActiveCamera()->SetFocalPoint(x,y,z);
Doesn't look nice but works...

tobse


Oleksandr Dzyubaka wrote:
> 
> vtkusers-request at vtk.org wrote:
>> Date: Fri, 4 Apr 2008 02:11:46 -0700 (PDT)
>> From: tobse <tobias.meisel at phacon-leipzig.de>
>> Subject: Re: [vtkusers] vtkImageViewer2 image display
>> To: vtkusers at vtk.org
>> Message-ID: <16489656.post at talk.nabble.com>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> Hi,
>>
>> I calculated the FocalPoint and the Position of the camera with respect
>> to
>> the image size
>>
>> 1. determine the size of the image in x and y direction (using the extent
>> and the spacing of the input image)
>> 2. based on the larger axes, you can modify the view angle or the
>> distance
>> of the camera
>>   
>>             angle = Camera->GetViewAngle();
>>             distance= SizeOfLargerAxes/2/tan(angle/2);
>> 3. Determine the middle of the image
>> 4. Focus the camera to the middle of the image 
>>
>>       
>>             Camera->SetFocalPoint(xmax/2, ymax/2, 0);
>>              Camera->SetPosition(xmax/2,ymax/2,distance);
>>
>> This will work as long as the image is in the xy-plane , with z=0.
>>
>> hope this will help
>>
>> tobse
>>   
> Hi Tobias,
> 
> Thanks for your answer.
> I understand that the remedy against getting my image in a render window
> so tiny is to preset the focal points and position before calling 
> methods below.
> 
> viewer->Render();
> renderWindowInteractor->Start();
> 
> I try to use vtkImageViewer2 class and as a starting point
> I use the slightly modified code from GettingStarted-II attached below.
> Searching the classes used in the code, I cannot find where I could
> access the camera methods to preset the values.
> 
> Where is it?
> 
> Thanks,
> 
> Alex
> 
> 
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageToVTKImageFilter.h"
> #include "vtkRenderWindowInteractor.h"
> #include "vtkImageViewer2.h"
> 
> int main( int argc, char **argv) {
> typedef itk::Image <signed short, 3> ImageType;
> 
> typedef itk::ImageFileReader <ImageType> ReaderType;
> typedef itk::ImageToVTKImageFilter <ImageType> ConnectorType;
> 
> ReaderType::Pointer reader= ReaderType::New();
> ConnectorType::Pointer connector= ConnectorType::New();
> reader->SetFileName( argv[1]);
> connector->SetInput( reader->GetOutput() );
> vtkImageViewer2* viewer= vtkImageViewer2::New();
> 
> vtkRenderWindowInteractor* renderWindowInteractor =
> vtkRenderWindowInteractor::New();
> 
> viewer->SetupInteractor( renderWindowInteractor);
> viewer->SetInput( connector->GetOutput() );
> 
> viewer->SetSlice(3);
> viewer->SetSize(300, 300);
> 
> viewer->Render();
> viewer->SetColorWindow( 255);
> viewer->SetColorLevel( 128);
> 
> renderWindowInteractor->Start();
> return 0;
> }
> 
> _______________________________________________
> 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
> 
> 

-- 
View this message in context: http://www.nabble.com/Re%3A-vtkImageViewer2-image-display-tp16642530p16678021.html
Sent from the VTK - Users mailing list archive at Nabble.com.




More information about the vtkusers mailing list