想用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 &