vtk数据的读写

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;
}
记得文件名需要是有规律的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值