vtk读取序列图片的三种方式

vtk对序列图片读取支持多种方式

1、将序列图像的路径及名称保存到vtkStringArray,最后再一起读取

//生成图像序列的文件名数组
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);	
}

//读取JPG序列图像
vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileNames(fileArray);

2、使用Reader类里的SetFilePrefix和SetFilePattern等方法读取序列图

vtkSmartPointer<vtkJPEGReader>reader = vtkSmartPointer<vtkJPEGReader>::New();  
reader->SetFilePrefix ("../data/Head/head");  
reader->SetFilePattern("%s%03d.jpg");  
reader ->SetDataExtent (0,255,0,255,1,100);
reader->Update();

3、先一张张图像读取,最后再一起合并为三维

vtkSmartPointer<vtkImageAppend> append = vtkSmartPointer<vtkImageAppend >::New();
append->SetAppendAxis(2);

vtkSmartPointer<vtkJPEGReader>reader = vtkSmartPointer<vtkJPEGReader>::New();
char fileName[128];
for(int i = 1; i < 21; i++)
{
	sprintf(fileName,"../data/Head/head%03d.jpg", i);
	reader->SetFileName(fileName);
	append->AddInputConnection(reader->GetOutputPort());
}

需要注意的是:

    方式3读取后的图像好像变少了,不知什么原因导致的,后续有时间再排查。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用vtk.js读取CT序列并显示3D影像,可以按照以下步骤进行操作: 1. 安装必要的依赖项 需要安装Vue、vtk.js和其他必要的依赖项。可以使用npm或yarn命令进行安装。 ``` npm install vue vtk-js vtk.js axios ``` 2. 安装VTKLoader VTKLoader是一个用于加载VTK格式文件的JavaScript库。可以使用npm或yarn命令进行安装。 ``` npm install vtkloader ``` 3. 创建Vue组件 在Vue组件中创建一个div元素来显示3D影像。使用vtk.js创建一个Renderer和一个RenderWindow,并将Renderer添加到RenderWindow中。然后使用VTKLoader加载CT序列,并将其添加到Renderer中。 ```html <template> <div ref="container"></div> </template> <script> import vtk from 'vtk.js'; import vtkLoader from 'vtkloader'; export default { name: 'CTViewer', mounted() { const container = this.$refs.container; // Create a renderer and a render window const renderer = vtk.Rendering.Core.vtkRenderer.newInstance(); const renderWindow = vtk.Rendering.Core.vtkRenderWindow.newInstance(); renderWindow.addRenderer(renderer); // Set the size of the render window renderWindow.setSize(container.offsetWidth, container.offsetHeight); // Add the render window to the container renderWindow.setContainer(container); // Load the CT sequence using VTKLoader vtkLoader.loadDataSet('path/to/ct/sequence.vtk').then((ct) => { // Add the CT sequence to the renderer renderer.addVolume(ct); renderer.resetCamera(); renderWindow.render(); }); }, }; </script> ``` 4. 使用Vue组件 将Vue组件添加到Vue应用程序中并使用它来显示CT序列3D影像。 ```html <template> <div> <CTViewer /> </div> </template> <script> import CTViewer from '@/components/CTViewer'; export default { name: 'App', components: { CTViewer, }, }; </script> ``` 这样就可以使用Vue和vtk.js读取CT序列并显示3D影像了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值