- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 python 对 DICOM 格式的 CT 图像进行一些分割任务。
主要问题是,当我尝试使用 pydicom 库读取 DICOM 文件 ( https://www.dicomlibrary.com/meddream/md5/index.html?study=1.2.826.0.1.3680043.8.1055.1.20111102150758591.92402465.76095170 ) 并使用 pixel_array 属性显示图像时,我`我得到的图像质量比原始图像差很多(请参阅下面的代码和屏幕截图)。
dicom_file = pydicom.read_file('Anonymized20191102.dcm')
plt.imshow(dicom_file.pixel_array, cmap='gray')
plt.show()
我的问题,为了更好的理解问题是:
观察:
我还尝试通过乘以斜率并添加偏差来获取亨斯菲尔德单位 (HU) 值,如下所示:
def convert_to_hu(dicom_file):
bias = dicom_file.RescaleIntercept
slope = dicom_file.RescaleSlope
pixel_values = dicom_file.pixel_array
new_pixel_values = (pixel_values * slope) + bias
return new_pixel_values
hu_pixels = convert_to_hu(dicom_file)
plt.imshow(hu_pixels, cmap='gray')
plt.show()
在可视化方面的结果与使用 pixel_array 的原始值的结果几乎相同。此外,这些值在 [-1000, 1250] 范围内(考虑到 HU 通常在 -1000 到 1000 之间,我认为这很好)。
最佳答案
第二张图片看起来像是使用适合所有提供的 HU 值的灰度范围绘制像素,而不是仅显示与所显示的解剖结构相对应的 HU 值范围。
虽然我不确定 pydicom 如何处理这个问题,但您需要对图像进行“窗口化和调平”以从第一张图像中获得结果。应用窗口/级别,通常通过线性 VOI LUT对于 CT 图像,将限制显示的像素范围并将它们缩放到可显示范围,通常为 8 位,除非使用灰度监视器。
CT 图像很可能有 Window Center (0028,1050) 标签来设置水平和 Window Width (0028,1051) 标签来设置窗口。图像中的中心值和宽度值由生成图像的模态提供,并且对应于在图像中显示腹部区域的良好范围。下面的链接提供了一些基于正在查看的 body 部位的 CT 图像的常见窗口/级别设置,还提供了有关这些设置如何影响显示图像的其他信息。
https://radiopaedia.org/articles/windowing-ct
虽然应用窗口/级别对于显示图像很有用,但是从每像素存储的 10 位或 12 位(对于 CT 图像很常见)转换为每像素显示的 8 位会丢失位深度。您将需要确定您的分割任务是否需要这个额外的位深度。
关于python - DICOM 文件的医学图像质量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791377/
我正在尝试将一个 DICOM 实例(在我的例子中是一个图像)从一个应用程序发送到一个服务器。但不知何故,它并没有发生。 日志显示某些标签丢失。 那么在 DICOM 关联(在我的例子中是 C-STORE
我所说的方向是指例如从患者的头部到底部或从他的底部到头部。到目前为止,我所看到的胸部 CT 扫描表明,实例编号 1 切片通常是从 body 上部向下的第一个切片,但我不知道这是标准的一部分还是我应该做
我知道单帧和多帧 dicom 图像文件。我想了解电影 dicom 图像,还有其他 dicom 图像格式。 最佳答案 正如您提到的,Alon 在他的评论中提到,DICOM 文件格式支持单帧和多帧像素数据
在处理 DICOM 研究、系列和媒体概念时,我想知道这些值是对所有数据都是唯一的,还是仅对它们所属的患者而言是唯一的。 换句话说;我可以让 2 名患者的研究/系列/sop 实例 uid 对这两名患者具
我有两个 图片 来自同一系列,但两个图像具有相同的 实例编号 6. 有可能吗????根据我的理解,系列实例编号对于该系列中的图像来说是唯一的。所以请帮助我......无论如何,是否可以从模态工作站??
我需要在像 firefox/chrome 这样的浏览器上显示 DICOM 图像。我遇到了这个名为 DWV 的查看器 - https://github.com/ivmartel/dwv . 我想知道是否
我遇到了在私有(private)标签中包含序列的 DICOM 对象;该序列中的每个项目都包含其自己的特定字符集 (0008,0005)。所有特定字符集元素都具有相同的值。 我还发现这些额外的特定字符集
如何识别 dicom 图像是否为压缩格式?还想知道如何读取压缩图像像素数据? 最佳答案 您可以使用命令行工具转储此类信息,例如 gdcminfo: $ gdcminfo 012345.002.050.
是否可以通过读取该研究中文件的 DICOM 头来找到 DICOM 研究中的图像数量? 我正在开发一个 Java 应用程序,它接收来自不同来源的 DICOM 研究。我只是想检查一份研究是否已经完全收到。
我必须从文件夹中选择所有有效的 DICOM 文件。我可以递归地从具有 *.DCM 扩展名的文件夹中选择所有文件。但是任何带有 *.DCM 的文件也会被拾取,并且此类文件不是有效的 DICOM 文件。
我有一堆 DICOM 冠状图像,我使用图像位置(患者)(0020,0032) 标签按正确的顺序对图像进行排序。 然而,该堆栈还包含一个“概述”图像,显示如何从轴向堆栈生成冠状切片 - 请参阅附件。 显
我一直在处理每个大约 4 MB 的 dicom 文件,但我最近收到了一些每个 280 KB 的文件。我不确定这是因为它们来自不同的 CT 扫描仪,还是新的 dicom 在给我之前被压缩了。有没有办法找
为了创建匿名化/去识别化工具,我想从 DICOM 文件中删除/覆盖所有不必要的标签/属性。我在互联网上搜索过,但没有找到 DICOM 文件必须使用哪些标签的明确列表。 我发现有多种类型,类型1是强制的
我有一堆 DICOM 冠状图像,我使用图像位置(患者)(0020,0032) 标签按正确的顺序对图像进行排序。 然而,该堆栈还包含一个“概述”图像,显示如何从轴向堆栈生成冠状切片 - 请参阅附件。 显
我一直在处理每个大约 4 MB 的 dicom 文件,但我最近收到了一些每个 280 KB 的文件。我不确定这是因为它们来自不同的 CT 扫描仪,还是新的 dicom 在给我之前被压缩了。有没有办法找
为了创建匿名化/去识别化工具,我想从 DICOM 文件中删除/覆盖所有不必要的标签/属性。我在互联网上搜索过,但没有找到 DICOM 文件必须使用哪些标签的明确列表。 我发现有多种类型,类型1是强制的
对不起,如果这是非常基本的,我是 DICOM 的新手。我知道 DICOM 文件有多个部分,例如:患者、研究、系列和实例(图像)。 现在要与设备通信,它需要一个传输语法,它告诉通信模式,如 Little
我在解释 DICOM 规范时遇到困难。具体来说,如果我有两个 DICOM 文件,每个文件都表示来自单个 CT 系列(同一研究)的独特 CT 切片。这两个文件都将包含 Patient 模块,因此理论上它
几天以来,我一直在使用 FO-DICOM 处理 DICOM 文件。 我正在使用一组 dicom 文件进行测试,并且我一直在打印“光度解释”和“每像素样本”值,以便更好地了解我正在处理的图像类型。 结果
AFAIK 没有 bool 值表示,我需要在私有(private)标记中指定 bool 值 true/false。 我想到了SH (短字符串),说 TRUE或 FALSE .是否有标准或广泛使用的方法
我是一名优秀的程序员,十分优秀!