标签:
#include <vtkSmartPointer.h> #include <vtkImageData.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h> #include <vtkInteractorStyleImage.h> #include <vtkRenderer.h> #include <vtkImageActor.h> #include <vtkBMPReader.h> #include <vtkExtractVOI.h> //测试图像:../data/lena.bmp int main(int argc, char* argv[]) { vtkSmartPointer<vtkBMPReader>reader = vtkSmartPointer<vtkBMPReader>::New(); reader->SetFileName("../lena.bmp"); reader->Update(); int dims[3]; reader->GetOutput()->GetDimensions(dims); vtkSmartPointer<vtkExtractVOI> extractVOI = vtkSmartPointer<vtkExtractVOI>::New(); extractVOI->SetInputConnection(reader->GetOutputPort()); //就是提取出来中间的部分1/4`3/4 extractVOI->SetVOI(dims[0] / 4., 3.*dims[0] / 4., dims[1] / 4., 3.*dims[1] / 4., 0, 0); extractVOI->Update(); vtkSmartPointer<vtkImageActor> originalActor = vtkSmartPointer<vtkImageActor>::New(); originalActor->SetInputData(reader->GetOutput()); vtkSmartPointer<vtkImageActor> voiActor = vtkSmartPointer<vtkImageActor>::New(); voiActor->SetInputData(extractVOI->GetOutput()); double originalViewport[4] = { 0.0, 0.0, 0.5, 1.0 }; double voiviewport[4] = { 0.5, 0.0, 1.0, 1.0 }; vtkSmartPointer<vtkRenderer> originalRenderer = vtkSmartPointer<vtkRenderer>::New(); originalRenderer->SetViewport(originalViewport); originalRenderer->AddActor(originalActor); originalRenderer->ResetCamera(); originalRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer<vtkRenderer> shiftscaleRenderer = vtkSmartPointer<vtkRenderer>::New(); shiftscaleRenderer->SetViewport(voiviewport); shiftscaleRenderer->AddActor(voiActor); shiftscaleRenderer->ResetCamera(); shiftscaleRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(originalRenderer); renderWindow->AddRenderer(shiftscaleRenderer); renderWindow->SetSize(900, 300); renderWindow->Render(); renderWindow->SetWindowName("ExtractVOIExample"); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); vtkSmartPointer<vtkInteractorStyleImage> style = vtkSmartPointer<vtkInteractorStyleImage>::New(); renderWindowInteractor->SetInteractorStyle(style); renderWindowInteractor->SetRenderWindow(renderWindow); renderWindowInteractor->Initialize(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }
基础知识就这样吧,图形绘制忽略掉==争取一周之内搞定~~
标签:
原文地址:http://blog.csdn.net/zhou_yujia/article/details/51333920