matlab - 读取 DICOM-RT 文件以创建 3D 二进制矩阵?

标签 matlab image-processing dicom

我目前正在处理 DICOM-RT 文件(其中包含 DICOM 以及剂量传输数据和结构集文件)。我主要对“结构集”文件(即 RTSS.dcm)感兴趣,它包含感兴趣的 ROI 的轮廓点集。特别地,轮廓点围绕肿瘤体积。例如,一个肿瘤有一组 5 个轮廓,每个轮廓都是一组围绕该肿瘤切片的点。

我正在尝试使用 MatLab 来使用这些轮廓点在二进制 3D 矩阵(0 = 非肿瘤,1 = 肿瘤)中构建肿瘤体积,并且需要帮助。

一种可能的方法是将每个轮廓集填充为二进制切片,然后在切片之间插入体积。到目前为止,我已经使用 fillpatch 函数创建每个轮廓切片的二进制横截面,但我很难弄清楚如何插入这些二进制切片成一个 3D 体积。没有一个内置函数似乎适用于这个特定问题(尽管也许我只是用错了它们?)。简单的线性插值似乎也不合适,因为一个轮廓的边缘应该在所有方向上融入相邻轮廓。

另一种选择是获取点并对其进行镶嵌(无需先制作切片)。但是,我不知道如何让 MatLab 只镶嵌肿瘤表面而不与肿瘤体积相交。目前它似乎在肿瘤内找到了三角形。如果我只能将它放入一个表面,我也不确定如何将其转换为二进制 3D 矩阵体积。

有没有人有可能适用于此的 3D 切片插值或曲面分割技术的经验?或者可能存在任何相关的工具包?我卡住了……:(

我也对其他语言的方法持开放态度:我对 C# 和 Python 有点熟悉,尽管我认为 MatLab 可以更轻松地处理矩阵运算。

提前致谢!

最佳答案

我不确定你从什么程序导出你的 dicom-rt 结构文件,但我相信我为你找到了一个更优雅的解决方案,已经在一个开源软件(GDCM、CMake、ITK)中描述过一篇 Insight 期刊文章。

我正在与我们的一位物理学家讨论类似的问题,我们看到了您的解决方案。如果您尝试二值化的任何结构没有凹陷,那很好,但如果是这样,它们将无法准确呈现。

此方法已针对来自 Eclipse 和 Masterplan 的 dicom-rt 结构集进行了验证。希望对您有所帮助。

http://www.midasjournal.org/download/viewpdf/701/4

关于matlab - 读取 DICOM-RT 文件以创建 3D 二进制矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303296/

相关文章:

javascript - 如何使用 JavaScript 获取多个 div 的背景图像并将它们用作模态图像的来源?

matlab - 如何更改 MATLAB 图工具栏上的按钮图标? (2014b)

postgresql - 为什么在 MATLAB 中创建 SQL 查询时会出现此错误?

opencv - opencv中HSV和HSV_FULL的区别?

c# - 如何将图像保存为 DICOM

python - 如何使用 gdcm 和 Python 解压压缩的 DICOM 图像?

dicom - Windows 下 dcmqrscp 中调用PresentationAddress 接收到的值不正确

matlab - 在 MATLAB 中有效地找到三个字符向量的唯一三元组

matlab - 我是否在 MATLAB imfilter 中发现了单精度输入的错误?

python - OpenCV Python : fast solution for 3-channel float32 image reading?