【问题标题】:Assign the Window centre and window width for dicom image为 dicom 图像分配窗口中心和窗口宽度
【发布时间】:2015-07-12 00:47:11
【问题描述】:

我有一个 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?

【问题讨论】:

标签: matlab image-processing dicom imshow


【解决方案1】:

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

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

dcm:WindowCenter: 2856.4189453125
dcm:WindowWidth: 2475.0

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

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

【讨论】:

  • 我并不是说要获得 Windows 价值。我问了关于如何在matlab中的imshow()函数中设置窗口值的问题
【解决方案2】:

只计算最大值和最小值

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

并将此值用于 imshow

imshow(ct, [low, high])

【讨论】:

  • 如果我使用上面的代码,那么它会给出错误的图像(如全白或全黑或图像不清楚)@JohnnyQ
  • dicominfo 的窗口宽度/中心值是多少?
  • 窗口中心为 [-600, 50],窗口宽度为 [1200 350]。
  • 好吧,在这种情况下,您应该使用 (Center, Width) (-600,1200) 或 (50,350)
  • 您可能需要考虑重新调整截距和斜率。检查这个 [stackoverflow.com/questions/8756096/… (stackoverflow.com/questions/8756096/…)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多