Advertisement
Guest User

[C++] 3D imaging using vtk

a guest
Nov 30th, 2015
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. typedef itk::Image<unsigned int, 3> Image3DType;
  2. typedef typename Image3DType::Pointer PointerImage3D;
  3.  
  4. void MainWindow::displayOriginalImage(PointerImage3D img)
  5. {
  6.     typedef itk::ImageToVTKImageFilter<Image3DType> TemplatedConnectorType;
  7.     TemplatedConnectorType::Pointer con = TemplatedConnectorType::New();
  8.     con->SetInput(img);
  9.     vtkSmartPointer<vtkImageResliceMapper> mapper = vtkSmartPointer<vtkImageResliceMapper>::New();
  10.     vtkSmartPointer<vtkImageActor> actor = vtkSmartPointer<vtkImageActor>::New();
  11.     try {
  12.         con->Update();
  13.     } catch (itk::ExceptionObject &e)
  14.     {
  15.         cerr << e << endl;
  16.     }
  17.     //actor->GetMapper()->SetInputData(con->GetOutput());
  18.     cout <<  "3" << endl;
  19.     mapper->SetInputData(con->GetOutput());
  20.     cout <<  "4" << endl;
  21.     actor->SetMapper(mapper);
  22.  
  23.  
  24.     vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
  25.     vtkSmartPointer<vtkRenderWindow> wnd = vtkSmartPointer<vtkRenderWindow>::New();
  26.     wnd->AddRenderer(renderer);
  27.     renderer->AddActor(actor);
  28.  
  29.     vtkSmartPointer<vtkRenderWindowInteractor> wndInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
  30.     wndInteractor->SetRenderWindow(wnd);
  31.     vtkSmartPointer<vtkInteractorStyleImage> styler = vtkSmartPointer<vtkInteractorStyleImage>::New();
  32.     wndInteractor->SetInteractorStyle(styler);
  33.  
  34.     vtkSmartPointer<vtkImagePlaneWidget> planeWidget = vtkSmartPointer<vtkImagePlaneWidget>::New();
  35.     cout << "5" << endl;
  36.     planeWidget->SetInputData(con->GetOutput());
  37.     cout << "6" << endl;
  38.     planeWidget->SetInteractor(wndInteractor);
  39.  
  40.     double origin[3] = {0,1,0};
  41.     planeWidget->SetOrigin(origin);
  42.     planeWidget->UpdatePlacement();
  43.  
  44. //    renderer->ResetCamera();
  45.     wnd->Render();
  46.  
  47.     wndInteractor->Initialize();
  48.     wnd->Render();
  49.     cout << "7" << endl;
  50.     planeWidget->On();
  51.     cout << "8" << endl;
  52.     wndInteractor->Start();
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement