我目前正在处理 DICOM-RT 文件(其中包含 DICOM 以及剂量传输数据和结构集文件)。我主要对“结构集”文件(即 RTSS.dcm)感兴趣,它包含感兴趣的 ROI 的轮廓点集。特别地,轮廓点围绕肿瘤体积。例如,一个肿瘤有一组 5 个轮廓,每个轮廓都是一组围绕该肿瘤切片的点。
我正在尝试使用 MatLab 来使用这些轮廓点在二进制 3D 矩阵(0 = 非肿瘤,1 = 肿瘤)中构建肿瘤体积,并且需要帮助。
一种可能的方法是将每个轮廓集填充为二进制切片,然后在切片之间插入体积。到目前为止,我已经使用 fill 或 patch 函数创建每个轮廓切片的二进制横截面,但我很难弄清楚如何插入这些二进制切片成一个 3D 体积。没有一个内置函数似乎适用于这个特定问题(尽管也许我只是用错了它们?)。简单的线性插值似乎也不合适,因为一个轮廓的边缘应该在所有方向上融入相邻轮廓。
另一种选择是获取点并对其进行镶嵌(无需先制作切片)。但是,我不知道如何让 MatLab 只镶嵌肿瘤表面而不与肿瘤体积相交。目前它似乎在肿瘤内找到了三角形。如果我只能将它放入一个表面,我也不确定如何将其转换为二进制 3D 矩阵体积。
有没有人有可能适用于此的 3D 切片插值或曲面分割技术的经验?或者可能存在任何相关的工具包?我卡住了……:(
我也对其他语言的方法持开放态度:我对 C# 和 Python 有点熟悉,尽管我认为 MatLab 可以更轻松地处理矩阵运算。
提前致谢!
最佳答案
我不确定你从什么程序导出你的 dicom-rt 结构文件,但我相信我为你找到了一个更优雅的解决方案,已经在一个开源软件(GDCM、CMake、ITK)中描述过一篇 Insight 期刊文章。
我正在与我们的一位物理学家讨论类似的问题,我们看到了您的解决方案。如果您尝试二值化的任何结构没有凹陷,那很好,但如果是这样,它们将无法准确呈现。
此方法已针对来自 Eclipse 和 Masterplan 的 dicom-rt 结构集进行了验证。希望对您有所帮助。
关于matlab - 读取 DICOM-RT 文件以创建 3D 二进制矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303296/