vtk提取二维bmp图像某区域

来源:互联网 发布:淘宝开店在哪里注册 编辑:程序博客网 时间:2024/05/17 19:20
#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.bmpint 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;}

基础知识就这样吧,图形绘制忽略掉==争取一周之内搞定~~

0 0
原创粉丝点击