[vtkusers] Extract slices from a vtkMetaImageReader with vtkExtractVOI
Jothy
jothybasu at gmail.com
Thu Jun 30 09:54:06 EDT 2011
Which image viewer are you using here?
Jothy
On Thu, Jun 30, 2011 at 3:41 PM, mathilde.merle
<mathilde.merle at laposte.net>wrote:
>
>
> 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<vtkExtractVOI> extractVOI =
> vtkSmartPointer<vtkExtractVOI>::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<vtkRenderWindowInteractor> renderWindowInteractor =
> vtkSmartPointer<vtkRenderWindowInteractor>::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<vtkCornerAnnotation> cornerAnnotation =
> vtkSmartPointer<vtkCornerAnnotation>::New();
> cornerAnnotation->SetLinearFontScaleFactor( 2 );
> cornerAnnotation->SetNonlinearFontScaleFactor( 1 );
> cornerAnnotation->SetMaximumFontSize( 20 );
> cornerAnnotation->SetText( 0, "Off Image" );
> cornerAnnotation->SetText( 3, "<window>\n<level>" );
> cornerAnnotation->GetTextProperty()->SetColor( 1,0,0);
>
> imageViewer->GetRenderer()->AddViewProp( cornerAnnotation );
>
> // Callback listens to MouseMoveEvents invoked by the interactor's
> style
> vtkSmartPointer<vtkImageInteractionCallback> callback =
> vtkSmartPointer<vtkImageInteractionCallback>::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
>
> <https://compte.laposte.net/inscription/index.do?jeux=2011FOOTER_generique>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110630/045b0350/attachment.htm>
More information about the vtkusers
mailing list