为了达到比较真实的显示效果,大家应该都是用的VTK的体绘制方法。
对显示效果起决定性影响的应该是1、数据预处理;2、传递函数设计吧?
大家目前能实现的最好看的绘制效果是什么样子呢?用了什么处理方法、怎么设计的传递函数呢?
很好奇VTK到底能做到何种程度,求分享~
以下是我自己做的:

用的OsiriX官网 http://www.osirix-viewer.com/datasets 下载的数据,361张。没有经过图像处理,用的vtkGPUVolumeRayCastMapper,传递函数:
opacityTransferFunction->AddPoint(-3024, 0, 0.5, 0.0);
opacityTransferFunction->AddPoint(-16, 0, .49, .61);
opacityTransferFunction->AddSegment(641, .72, .5, 0.0);
opacityTransferFunction->AddPoint(3071, 0.0, 0.5, 0.0);
colorTransferFunction->AddRGBPoint(-3024, 0, 0, 0, 0.5, 0.0);
colorTransferFunction->AddRGBPoint(-16, 0.73, 0.25, 0.30, 0.49, .61);
colorTransferFunction->AddRGBPoint(641, .90, .82, .56, .5, 0.0);
colorTransferFunction->AddRGBPoint(3071, 1, 1, 1, .5, 0.0);
gradientTransferFunction->AddPoint(0, 2.0);
gradientTransferFunction->AddPoint(500, 2.0);
gradientTransferFunction->AddSegment(600, 0.73, 900, 0.9);
gradientTransferFunction->AddPoint(1300, 0.1);
可以看到软组织基本全混在一起区分不出肌肉血管和皮肤什么的。不知道大家做出来的效果什么样子
对显示效果起决定性影响的应该是1、数据预处理;2、传递函数设计吧?
大家目前能实现的最好看的绘制效果是什么样子呢?用了什么处理方法、怎么设计的传递函数呢?
很好奇VTK到底能做到何种程度,求分享~
以下是我自己做的:

用的OsiriX官网 http://www.osirix-viewer.com/datasets 下载的数据,361张。没有经过图像处理,用的vtkGPUVolumeRayCastMapper,传递函数:
opacityTransferFunction->AddPoint(-3024, 0, 0.5, 0.0);
opacityTransferFunction->AddPoint(-16, 0, .49, .61);
opacityTransferFunction->AddSegment(641, .72, .5, 0.0);
opacityTransferFunction->AddPoint(3071, 0.0, 0.5, 0.0);
colorTransferFunction->AddRGBPoint(-3024, 0, 0, 0, 0.5, 0.0);
colorTransferFunction->AddRGBPoint(-16, 0.73, 0.25, 0.30, 0.49, .61);
colorTransferFunction->AddRGBPoint(641, .90, .82, .56, .5, 0.0);
colorTransferFunction->AddRGBPoint(3071, 1, 1, 1, .5, 0.0);
gradientTransferFunction->AddPoint(0, 2.0);
gradientTransferFunction->AddPoint(500, 2.0);
gradientTransferFunction->AddSegment(600, 0.73, 900, 0.9);
gradientTransferFunction->AddPoint(1300, 0.1);
可以看到软组织基本全混在一起区分不出肌肉血管和皮肤什么的。不知道大家做出来的效果什么样子