首先是单张图像的读写
#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; }
新闻热点
疑难解答