我正在使用VTK从DICOM文件渲染3D模型。我希望能够通过组织显示模型组织。我的意思是,例如,只显示骨骼,或仅显示皮肤等......
我发现这个有用的类vtkContourFilter。有了它,就可以做类似的事情:
vtkContourFilter *filter = vtkContourFilter::New();
filter->SetValue(0, 650);
第二个值越高,它在模型中越深。这样,通过我的dicom文件样本,我只能显示值为650的骨骼。
如果我将它设置为-150,我可以看到皮肤。
所以,如果我这样做:
filter->SetValue(0, 650);
filter->SetValue(1, -150);
我将有两个轮廓,骨骼和皮肤。
问题是,我手动尝试了不同的值来知道在哪里停下来看骨头等等......从一个样本到另一个样本可能会有所不同。有没有办法让它自动化?可能是在dicom文件中设置了什么内容?
答案 0 :(得分:2)
我假设您正在询问CT扫描中的DICOM数据。在这种情况下,体素值以Hounsfield单位给出,遵循与设备无关的scale (Wikipedia)。但是,正如您可以在该页面上阅读的那样,边界并不精确,并且没有关于DICOM数据中边界的其他信息。要确定准确的阈值,您必须对存在大量different algorithms的数据进行细分,包括确定最佳阈值(例如Otsu)。
要了解这一点,您可以使用交互式细分工具尝试一些DICOM查看器,例如: MITK Workbench,3D Slicer或ITK Snap。