体绘制的速度问题是困扰医学图像三维重建的关键环节,通过总结,得到了以下几种提高体绘制速度的方法:
方法一:介绍一下vtkImageResample,这个函数将会通过线性插值对输入数据的spacing以及extent进行修改,来达到对输入数据的重新采样。一般采用SetAxisMagnificationFactor的方法来进行设置如下所示:
vtkImageResample:
SetInput(reader->GetOutput());
SetAxisMagnificationFactor(0, 0.5);
SetAxisMagnificationFactor(1, 0.5);
方法二:对读入的数据可以进行 subsampling(二次抽样样品),这样也可以使程序很数据读入加快。如下所示:
vtkImageShrink3D shrink
SetInput(reader->GetOutput());
SetShrinkFactors(3,3,3)
AveragingOn
SetShrinkFactors 定义了x,y,z 抽样精密度 如果都是0 那么就没有必要用这个函数了,如果subsampling得值过大,那么rendering的结果会比较差。在这个时候如果对subsamping得数据进行优化显示是一个值得讨论的问题。
优化的方法可以选在高斯平滑的函数进行,这样可以减少数据的梯度感和粗糟感,代码如下
vtkImageGaussianSmooth:
SetInputConnection(reader->GetOutput());
SetDimensionality(3)
SetRadiusFactors(1,1,0)
方法三:重新设置SampleDistance。对于使用vtkVolumeRayCastMapper来说。使用函数SetImageSampleDistance来进行设置,但同时,因为在默认状态下,它具有为了达到交互效果而自动调节显示效果的功能,所以前提必须是RayCastMapper 的自动调节功能已经关掉,(如果仍然采用自动调节作用,则可以通过SetAutoAdjustSampleDistances (int)来进行交互设置)即AutoAdjustSampleDistancesOff();如下所示:
vtkVolumeRayCastMapper:
SetImageSampleDistance(2);
AutoAdjustSampleDistancesOff();
方法四:使用vtkLODProp3D。它允许加入多个Mapper,并通过设置time,来决定某一时刻应该显示哪一个Mapper。通常的做法是当在旋转时选择交互性好但准确率稍差的Mapper,当停止时,又会显示比较费时但绘制准确的Mapper。对于RayCastMapper来说,则不需要使用vtkLODProp3D。如下所示:
vtkVolumeTextureMapper2D *lowresMapper = vtkVolumeTextureMapper2D::New();
lowresMapper->SetInput(reader->GetOutput());
vtkVolumeRayCaster *hiresMapper = vtkVolumeRayCaster::New();
hiresMapper->SetInput(reader->GetOutput());
vtkLODProp3D *volumeLOD = vtkLODProp3D::New();
volumeLOD->AddLOD(lowresMapper, volumeProperty, 0.0);
volumeLOD->AddLOD(hiresMapper, volumeProperty, 0.0);
分享到:
相关推荐
利用vtk实现的体绘制代码,绝对能跑,且代码解释详细,流程清楚,亲册
说明:体绘制实现三维重建。 描述:Ray-casting(光线投射)算法对 DICOM 等格式的切片进行三维重建. 体绘制:不同于面绘制,面绘制需要生成中间几何图元,而体绘制是直接绘制,内容需求较面绘制小;每切换一个视角...
用vtk的进行的体绘制,vtk的开发包网上有下载,安装会花些时间。
包括16位图像体绘制、BMP图像体绘制、分割体数据后体绘制、shearwarp、加滤波、对sobel后的数据体绘制、ImageCast、3D纹理映射法、交互加速、MIP、体数据保存研究等等50余个可运行样例程序。
用VS2013配置PCL后可以运行此程序,程序有PCL的属性列表,改一下就好,此程序为VTK体绘制裁剪_Cropping技术,内含vtk文件
关于vtk体绘制的详细介绍,适合于初学者 ppt格式
是对科学可视化中的体绘制算法,以及使用 VTK 软件库进行体绘制程序实现方法的研究。主要工作是分析了传统面元绘制方法相比体绘制方式的不足和各类体绘制算法的特点,介绍了 VTK 软件库的程序架构和主要功能,其各种...
应用体绘制技术,实现了以VTK为基础的3D图像重建,希望对学习VTK有所帮助
打开CMAKE,在最上面的路径中分别输入VTK6.3.0和VTK6.3.0_bin两个文件夹的路径,接着点击左下的“Configure”按钮进行编译的配置,在弹出的对话框选择所使用的编译器,这里选择的是VS2010,可以根据自己安装的版本...
一个利用VTK库绘制人体形状的程序,在VC6.0下调试通过,绘图成功。
很好的基于VTK开发库的医学图像三维重建,这里用了VTK里的面绘制方法就行了三维重建,对初学者很有益,望交流学习!
本资源是利用VTK进行面绘制,在OpenGL界面中显示
vs2008+vtk能够运行,带数据的。vtk读取txt文本 vtk绘制三维地形
利用MC算法 基于VTK平台的面绘制实现代码
vtk自定义交互样式,实现右键旋转(这个我之前一直没找到,后面自己想到了办法了,所以分享给大家看看了),左键标红点击的三角面片。
用VS2013配置PCL后可以运行此程序,程序有PCL的属性列表,改一下就好,此程序为VTK的纹理映射体绘制_三维纹理映射,内含vtk文件
关于vtk面绘制的一个小程序希望大家喜欢 用c#编写
c++ 结合VTK 通过点 拟合样条曲线
较为基础的基于RayCasting的体绘制方法,能够通过键盘控制视点的位置,对绘制的图像进行观察。
本程序是有关vc++与vtk相结合的情况下,三维重建的效果,其中增加的对感兴趣区域的选取功能,也就是说在三维重建体绘制情况下,自己选取感兴趣区域。