您的位置:首页 > 其它

vtk数据的读写

2016-05-03 14:39 330 查看
1.单张图片的读取:vtkPNGReader
不过为啥保存的颜色变了呢

#include <vtkSmartPointer.h>
#include <vtkPNGReader.h>
#include <vtkJPEGWriter.h>
#include <vtkImageViewer2.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleImage.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
int main()
{
vtkSmartPointer<vtkPNGReader>reader = vtkSmartPointer<vtkPNGReader>::New();
reader->SetFileName("../VTK-logo.png");

//vtkSmartPointer<vtkImageView2>imageViewer = vtkSmartPointer<vtkImageView2>::New();这里由于少写了一个r 导致CE==
vtkSmartPointer<vtkImageViewer2> imageViewer = vtkSmartPointer<vtkImageViewer2>::New();
imageViewer->SetInputConnection(reader->GetOutputPort());//写setinput不可以
vtkSmartPointer<vtkRenderWindowInteractor>renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
imageViewer->SetupInteractor(renderWindowInteractor);
imageViewer->Render();
imageViewer->GetRenderer()->ResetCamera();
imageViewer->Render();

vtkSmartPointer<vtkJPEGWriter>writer = vtkSmartPointer<vtkJPEGWriter>::New();
writer->SetFileName("vtk-logo.jpg");
writer->SetInputConnection(reader->GetOutputPort());
writer->Write();

renderWindowInteractor->Start();
}


2.一系列图像数据的读取
多了vtkStringArray  和正常的string不一样~~

#include <vtkSmartPointer.h>
#include <vtkJPEGReader.h>
#include <vtkImageViewer2.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleImage.h>
#include <vtkRenderer.h>
#include <vtkStringArray.h>
#include <vtkRenderWindow.h>
int main()
{
/*vtkSmartPointer<vtkStringArray>fileArray = vtkSmartPointer<vtkStringArray>::New();
char fileName[128];
for (int i = 1; i < 100; i++)
{
sprintf(fileName, "../data/Head/head%03d.jpg", i);
vtkstd::string fileStr(fileName);
fileArray->InsertNextValue(fileStr);
}*/
vtkSmartPointer< vtkStringArray > fileArray = vtkSmartPointer< vtkStringArray >::New();
char fileName[128];
for (int i = 1; i < 100; i++)
{
sprintf(fileName, "../data/Head/head%03d.jpg", i);
vtkstd::string fileStr(fileName);
fileArray->InsertNextValue(fileStr);
}

vtkSmartPointer<vtkJPEGReader>reader = vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileNames(fileArray);

vtkSmartPointer<vtkImageViewer2>imageViewer = vtkSmartPointer<vtkImageViewer2>::New();
imageViewer->SetInputConnection(reader->GetOutputPort());
vtkSmartPointer<vtkRenderWindowInteractor>renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
imageViewer->SetSlice(50);//默认显示第50 切片
imageViewer->SetSliceOrientationToXY();
imageViewer->SetupInteractor(renderWindowInteractor);
imageViewer->Render();

renderWindowInteractor->Start();
return 0;
}记得文件名需要是有规律的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: