使用MATLAB创建DICOM-RT轮廓数据的3D蒙片时出现问题

polkgigr  于 2023-02-05  发布在  Matlab
关注(0)|答案(1)|浏览(219)

我在使用RT蒙片从dicom图像中提取肿瘤时遇到问题。由于GDPR,我不允许共享dicom图像,即使它们是匿名的。但我允许自己共享图像。我想使用绘制GTV从CT图像中提取绘制的肿瘤,该绘制GTV使用MATLAB存储为RT结构。
假设存储CT图像的文件目录名为DicomCT,RT struct dicom文件名为rtStruct.dcm。
我可以阅读和可视化我的CT图像如下:

V = dicomreadVolume(“DicomCT”);
V = squeeze(V);
volshow(V)

volume V - 3D CT image
我可以使用以下命令加载rt结构:

Info = dicominfo(“rtStruct.dcm”);
rtContours = dicomContours(Info);
I get the plot giving the different contours.
plotContour(rtContours)

Contours for the GTV of the CT image
我使用此链接获取有关如何创建蒙片的信息,以便将其应用于3D CT图像:dicomhttps://nl.mathworks.com/help/images/create-and-display-3-d-mask-of-dicom-rt-contour-data.html#d124e5762信息告诉我图像应该是3mm切片,因此我选择了3x3x3作为参考信息。

referenceInfo = imref3d(size(V),3,3,3);
rtMask = createMask(rtContours, 1, referenceInfo)

当我绘制rtMask时,我得到了一个没有任何遮罩痕迹的灰色屏幕。我认为我定义referenceInfo的方式有问题,但我不知道如何修复它或哪里出了问题。

volshow(rtMask)

Volume plot of the RT mask
什么是最好的前进道路?

wecizke3

wecizke31#

事实上,几天前我也遇到过类似的问题,我想你可能有两个问题(他们都不是你的错)。你的灰色屏幕可能是一个错误,渲染它没有显示,因为如何实际volshow()脚本工作。我发现它做了一些我不理解的事情,图形内存和表示数字类型卷与逻辑卷。我发现这是很难的方式在我的工作电脑,我只有英特尔高清图形。使用

iptsetpref('VolumeViewerUseHardware',true)

对于逻辑卷,我的工作很好。您还可以通过尝试将掩码重新绘制为双精度而不是逻辑

rtMask = double(rtMask)
volshow(rtMask)

如果不是由系统和volshow之间的交互引起的渲染错误()它可能是一个实际的混乱和如何createMask和它需要的实际引用信息(由你刚刚链接的教程中的一个实际糟糕的解释创建)。使用像素大小信息而不是实际的轴限制可能会在分割中创建部分可视化,甚至在缩放前丢失它。这位好心人在这篇文章中用dicom轮廓的实际几何信息作为限制,解释得更优雅。https://es.mathworks.com/support/search.html/answers/1630195-how-to-convert-dicom-rt-structure-to-binary-mask.html?fq%5B%5D=asset_type_name:answer&fq%5B%5D=category:images/basic-import-and-export&page=1
基本上使用了

plotContour(rtContours);                                            
ax = gca;                                                           
referenceInfo = imref3d(size(V),ax.XLim,ax.YLim,ax.ZLim);
rtMask = createMask(rtContours, 1, referenceInfo)

除了你的代码,它可能会工作。
我希望这能对你有所帮助。

相关问题