[vtkusers] Extract slices from a vtkMetaImageReader with vtkExtractVOI
mathilde.merle
mathilde.merle at laposte.net
Thu Jun 30 10:41:01 EDT 2011
Hello,
I'm trying to extract slices from a vtkImagedata sequence and then display it.
I tryed with vtkImageReslice and then vtkextractVOI, but it don't work. The image displayed is always the same even if I change 'slice_nb'.
How can I do ?
My code :
int* dims = reader->GetOutput()->GetDimensions();
// extract slice
int slice_nb = 0;
vtkSmartPointer extractVOI = vtkSmartPointer::New();
extractVOI->SetInputConnection(reader->GetOutputPort());
extractVOI->SetVOI(0,dims[0],0,dims[1], slice_nb, slice_nb); //extract first image
extractVOI->Update();
vtkImageData* extracted = extractVOI->GetOutput();
int* dims2 = extracted->GetDimensions();
cout << "DimensionsExtracted = ";
for (int i=0; i<(int)(sizeof(dims2)/sizeof(int)+1); i++) {
cout << dims2[i]<<", ";
}
cout << endl; // Get a good image dimension
// Visualize
vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();
imageViewer->SetInputConnection(extractVOI->GetOutputPort() );
imageViewer->SetupInteractor( renderWindowInteractor );
imageViewer->SetSize( 600, 600 );
vtkRenderer* renderer = imageViewer->GetRenderer();
renderer->ResetCamera();
renderer->GradientBackgroundOn();
renderer->SetBackground(0,0,0);
renderer->SetBackground2(1,1,1);
// Annotate the image with window/level and mouse over pixel information
vtkSmartPointer cornerAnnotation = vtkSmartPointer::New();
cornerAnnotation->SetLinearFontScaleFactor( 2 );
cornerAnnotation->SetNonlinearFontScaleFactor( 1 );
cornerAnnotation->SetMaximumFontSize( 20 );
cornerAnnotation->SetText( 0, "Off Image" );
cornerAnnotation->SetText( 3, "\n" );
cornerAnnotation->GetTextProperty()->SetColor( 1,0,0);
imageViewer->GetRenderer()->AddViewProp( cornerAnnotation );
// Callback listens to MouseMoveEvents invoked by the interactor's style
vtkSmartPointer callback = vtkSmartPointer::New();
callback->SetViewer( imageViewer );
callback->SetAnnotation( cornerAnnotation );
callback->SetPicker( propPicker );
callback->SetOrigin( orgn[0], orgn[1], orgn[2]); // add the origin of the sequence into the class
// Events recognized
vtkInteractorStyleImage* imageStyle = imageViewer->GetInteractorStyle();
imageStyle->AddObserver( vtkCommand::MouseMoveEvent, callback );
imageStyle->AddObserver( vtkCommand::LeftButtonReleaseEvent, callback );
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
Thanks
Mathilde
Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110630/a117bca4/attachment.htm>
More information about the vtkusers
mailing list