标准化多个DICOM图像

问题描述 投票:0回答:1

我正在处理多个DICOM文件,其中大多数文件的像素差异很大。例如,一个范围从-1024到2815,另一个范围从0到2378。是否有一种方法可以将它们全部标准化为同一范围。还要注意,我正在使用python和pydicom库。预先感谢。

python dicom medical pydicom
1个回答
2
投票

如果您对所有数据(例如CT图像)使用相同的IOD,并且图像数据已经在HU中(并且可以确定,您可以使用pydicom中的apply_modality_lut()函数:]

from pydicom import dcmread
from pydicom.pixel_data_handlers.util import apply_modality_lut

ds = dcmread('filename.dcm')
arr = ds.pixel_array
hu = apply_modality_lut(arr, ds)

然后您的数据已经在特定的quantity(即HU)中。要转换为特定的range,则仅意味着决定如何处理所选范围之外的值:

import numpy as np
# Clip values outside the range to the min/max of the range
clipped_hu = np.clip(hu, -1024, 1024)

当然,这意味着不再将任何剪切的像素视为输入数据的准确表示。

缩放与窗口化

我将添加一些有关重新缩放DICOM数据和使其开窗的区别的解释。

想象一下,您有两个尺子,一个以厘米为单位,一个以英寸为单位。您将DICOM rescale operation都应用到-在pydicom中使用apply_modality_lut()-您将获得两个以厘米为单位的标尺。现在,您可以使用标尺来测量东西,并且可以从两者中获得相同的值,简洁!

现在您拿起标尺,对两者都应用相同的DICOM windowing operation。窗口化操作不太像类比,实际上,您正在拿起标尺的小窗口(例如从10到12厘米的部分),并将其拉伸到与整个标尺相同的长度。您的标尺不再以厘米为单位,不能用来测量东西,但是也许通过扩展该部分,您可以看到一些以前不明显的细节(like a tumour)。将相同的缩放比例+窗口化操作应用于两者的另一个好处是,您仍然可以将两个标尺与each other进行有意义的比较,因为它们都被拉伸了相同的量。

因此,重新缩放操作全部是关于将原始数据转换为数量以允许直接比较的,而开窗操作则是关于可视化某些东西。如果您想知道CT扫描的最高密度区域,可以使用无窗口缩放操作。如果您想查看放射科医生在撰写报告时所看到的内容,则可以应用重新缩放和开窗操作。

热门问题
推荐问题
最新问题