首页 > 学院 > 开发设计 > 正文

vtk图像的读写

2019-11-06 07:08:55
字体:
来源:转载
供稿:网友

首先是单张图像的读写

#include <vtkSmartPointer.h>  #include <vtkPNGReader.h>  #include <vtkImageViewer2.h>  #include <vtkRenderWindowInteractor.h>  #include <vtkJPEGWriter.h>  #include <vtkRenderer.h> //定义了Camera  int main()  {  //读取PNG图像  vtkSmartPointer<vtkPNGReader> pngread =   vtkSmartPointer<vtkPNGReader>::New();  pngread->SetFileName("logo.png");  //显示该幅图像  vtkSmartPointer<vtkImageViewer2> ImageViewer =  vtkSmartPointer<vtkImageViewer2>::New();  ImageViewer->SetInputConnection(pngread->GetOutputPort());  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInter =   vtkSmartPointer<vtkRenderWindowInteractor>::New();  ImageViewer->SetupInteractor(renderWindowInter);  ImageViewer->Render();  ImageViewer->GetRenderer()->ResetCamera();  ImageViewer->Render();  //写图像  vtkSmartPointer<vtkJPEGWriter> writer =   vtkSmartPointer<vtkJPEGWriter>::New();  writer->SetFileName("VTK-logo.jpg");  writer->SetInputConnection(pngread->GetOutputPort());  writer->Write();  renderWindowInter->Start();  }

其次是序列图片的读写

要注意的是图片名称是要统一格式

#include <stdio.h>  #include <vtkSmartPointer.h>  #include <vtkStringArray.h>  #include <vtkJPEGReader.h>  #include <vtkImageViewer2.h>  #include <vtkRenderWindowInteractor.h>  #include <vtkRenderer.h>  int main()  {  //生成文件序列组名  vtkSmartPointer <vtkStringArray> fileArray =  vtkSmartPointer <vtkStringArray>::New();  char fileName[128];  for(int i=1; i<20; i++)  {  sPRintf(fileName,"C://Users//lenovo//Desktop//vtktest//vtkread3//bin//image//%03d.jpg",i);  vtkstd::string fileStr(fileName);  fileArray->InsertNextValue(fileStr);  }  //读取JPG序列图像  vtkSmartPointer <vtkJPEGReader> reader =   vtkSmartPointer <vtkJPEGReader>::New();  reader->SetFileNames(fileArray);  //显示  vtkSmartPointer<vtkImageViewer2> viewer =   vtkSmartPointer<vtkImageViewer2>::New();  viewer->SetInputConnection(reader->GetOutputPort());  vtkSmartPointer<vtkRenderWindowInteractor> interact =  vtkSmartPointer<vtkRenderWindowInteractor>::New();  //选择第3张切片  viewer->SetSlice(3);  viewer->SetSliceOrientationToXY();  //viewer->SetSliceOrientationToXZ();  //viewer->SetSliceOrientationToYZ();  viewer->SetupInteractor(interact);  viewer->Render();  interact->Start();  return 0;  }


上一篇:uva 10158 War

下一篇:赛马练习

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表