gpt4 book ai didi

python - DICOM 文件的医学图像质量问题

转载 作者:行者123 更新时间:2023-12-02 19:48:20 24 4
gpt4 key购买 nike

我正在尝试使用 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()

The original image

The image displayed with matplotlib

我的问题,为了更好的理解问题是:

  1. pixel_array 属性代表什么?我已经看到它采用 [0, 2250] 范围内的值。

观察:

我还尝试通过乘以斜率并添加偏差来获取亨斯菲尔德单位 (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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com