vtk+qt进行多幅图像的滑块控制切换 中tkImageAppend 的Inputconnection SetInputConnection  导致的bug问题

使用vtkImageAppend和qt显示多幅图像,通过滑块控制切换时遇到图像无法切换的问题。原因是vtkImageAppend的AddInputConnection方法在每次循环中添加的是同一地址的reader输出,导致所有append指向最后一张图像。解决方法是在每次循环中新建vtkJPEGReader对象,确保每次添加的输入连接是动态更新的内容。
摘要由CSDN通过智能技术生成

想用vtk载入多幅图像,再通过qt显示 ,于是选用vtkImageAppend 类,并按照下面的代码写,采用vtkImageviewer2类进行显示,qvtkWidget类显示,并加入滑块控制图像的切换,结果一切看上去没有问题,但是最终图像就是无法进行切换(当时那么认为),于是我以为是整体的数据流没有建立好,所以在vtkrenderer vtkRenderWindow 及qvtkWidget的 Render及更新,各种倒腾,两天过去依旧不行。最后,无意发现我不加交互时显示的图像总是最后一张!!!

so,结论就是,下面这段代码有问题就!这个在教程及网页上广为流传的代码有问题,也就是AddInputConnection,是一个建立数据流的指针,他指向的reader的输出,但这里reader是一个唯一地址,每次读取,其地址不变,但内容变了,append因此add了21个同一个地址指向,而reader内容会随着每个循环动态更新,最后,所有的append的指向指针都是同一图,然后怎样更新,都不变。

复制代码

1 vtkSmartPointer<vtkImageAppend > append =
 2        vtkSmartPointer<vtkImageAppend >::New();
 3 append->SetAppendAxis(2);
 4  
 5 vtkSmartPointer<vtkJPEGReader>reader &
VTK是Visualization Toolkit的缩写,是一个开源的图形处理工具库,用于创建、处理和渲染三维图形。它提供了丰富的功能,可以用于各种应用程序,包括科学可视化、医学图像处理、机器人学等。 Qt是一种跨平台的应用程序开发框架,具有丰富的GUI(图形用户界面)组件和工具,可以用于创建各种类型的应用程序。它提供了直观、交互式的界面设计工具,使开发人员能够轻松地创建用户友好的应用程序。 DICOM是医学图像和通信标准的缩写,它是医学领域的一种通用文件格式和协议,用于存储、传输和共享医学图像和相关信息。DICOM文件通常包含来自医学成像设备(如CT扫描、MRI、X射线等)的图像数据及其相关的患者信息、检查参数等。 VTKQt和DICOM常常一起使用,用于开发医学图像处理和分析的应用程序。通过使用VTKQt,开发人员可以轻松地创建具有丰富可视化效果的医学图像应用程序,并提供直观、智能化的界面。VTK提供了丰富的图形处理和可视化工具,可以对DICOM图像进行处理、分析和可视化。而Qt的GUI组件和界面设计工具使开发人员能够创建用户友好的应用程序界面,方便用户查看、编辑和分析DICOM图像。 总的来说,VTKQt和DICOM的结合为医学图像处理和分析应用程序的开发提供了强大的工具和功能。它们的使用可以加快开发过程,提高应用程序的效率和用户友好性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值