0

我有一个 dcm 格式的 Dicom 图像文件。在 matlab 中,通过使用Dicomread我获得了图像数据,并通过使用dicominfo我获得了该 dcm 文件的窗口中心窗口宽度。现在我想通过在图中使用imshow来显示图像 。

我的代码如下,

ct = dicomread('E:\IM-0001-0001.dcm'); 
info = dicominfo('E:\IM-0001-0001.dcm');
figure
imshow(ct , [info.WindowCenter, info.WindowWidth]);

但它给出了一个错误

 Error using checkDisplayRange (line 20)
HIGH must be greater than LOW.

我知道为什么会出现这个错误。它发生是因为窗口中心值大于窗口宽度。

现在我的问题是

1.我的代码为dcm图像分配窗口级别和窗口宽度是否正确?

2.当出现上述情况时,如何为dicom图像分配Window level和window width?

4

2 回答 2

1

只需计算最高和最低值

low = center - width / 2
high = center + width / 2

并将此值用于 imshow

imshow(ct, [low, high])
于 2015-05-02T09:31:49.897 回答
0

如果我像这样使用 ImageMagick 的命令检查该图像identify,我会得到以下信息......

identify -verbose IM-0001-0001.dcm | grep -i window

dcm:WindowCenter: 2856.4189453125
dcm:WindowWidth: 2475.0

我倾向于相信这些值,因为 ImageMagick 似乎可以很好地提取图像,如下所示:

在此处输入图像描述

我建议您可以使用其他一些软件检查您的窗口值。

于 2015-05-02T13:56:29.667 回答