【问题标题】:DICOM file info to .txt fileDICOM 文件信息到 .txt 文件
【发布时间】:2016-01-12 17:23:13
【问题描述】:

我有一个包含放射治疗剂量分布的 DICOM 文件。在 MatLab 中计算各种事物需要这种剂量分布。但不知何故,MatLab 无法读取这些特定文件,我不知道为什么。

我尝试了一些在线程序,实际上可以读取它们,但是我无法导出包含剂量分布的 3D 矩阵,然后我可以将其加载到 MatLab 中。

我发现的唯一的东西是一个程序,它一次为一个切片提供一个包含三列(x 位置、y 位置和亮度)的 txt 文件。 Ofc,由此我可以创建我正在寻找的内容,但是每次为每个患者导出 100-1500 个切片以导出单个 txt 文件非常耗时。

所以我想知道是否有人知道可以轻松做到这一点的程序或其他东西?

【问题讨论】:

  • 如果是二进制文件 fread 应该可以解决问题
  • 您应该使用 matlab 和 DICOM 文件解决您的问题,而不是搜索其他程序。读取文件有什么问题?如果一切都失败了,转换成文本可能是最糟糕的选择,对于图像,你必须使用二进制格式,否则文件会变得很大。
  • @Daniel 说实话,是我的同事使用 MatLab 来做这件事,但无法让它工作。他只是说他无法正确读取它,如果他尝试访问剂量,则会得到一个空矩阵。它是这样的文件:1drv.ms/1SMJrDE 我不知道他是否做错了什么,或者这是一个奇怪的 DICOM。
  • 你能提供一些代码和错误信息吗?
  • 您能告诉我们您尝试了什么,当您说“MatLab 无法读取这些特定文件”时,您得到了什么结果? MATLAB 具有相对不错的 DICOM 支持,从 dicomread 开始。有一整页的DICOM文档here

标签: matlab text dicom


【解决方案1】:

您绝对可以使用内置的 MATLAB 函数来处理这个问题。

要获取 DICOM 标头,您需要使用 dicominfo,然后要获取您想要获取的图像数据,您需要使用 dicomread

使用您提供的示例图像,我能够使用以下内容加载它。

info = dicominfo('rtdose.dcm');  % Unnecessary because you can use dicomread directly on the filename
im = dicomread(info);
size(im)

    512   512   1   118

如您所见,这是一个 4D 矩阵,我假设第 4 维是时间。然后我循环浏览这些图像,发现大多数信号发生在特定时间点之间,我制作了这些图像以灰度显示的 gif 图像(左上角的帧号)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多