如何设置此医疗DICOM图像的显示范围

时间:2017-02-07 18:07:11

标签: image matlab matlab-figure dicom

这是我用来显示DICOM图像的代码,当我给出完整的显示范围时,它显示像左边的毛刺图像,当我增加较低的显示范围时,图像看起来更清晰。

[img, map] = dicomread('D:\Work 2017\Mercy\trial\trial4\Export0000\MG0001.dcm');
info = dicominfo('D:\Work 2017\Mercy\trial\trial4\Export0000\MG0001.dcm' );
mini = min(img(:));
maxi = max(img(:));

figure,
subplot(131), imshow(img, [mini maxi]); title('Full display range')
subplot(132), imshow(img, [maxi*0.7 maxi]); title('70% and above display range')
subplot(133), imshow(img, [maxi*0.8 maxi]); title('80% and above display range')

enter image description here 我想总是看到一个类似于右侧图像的图像而没有给出我在上面代码中使用的显示范围

1 个答案:

答案 0 :(得分:2)

通常,DICOM会有WindowCenter and WindowWidth个标签,用于指定推荐的窗口/级别设置。您可以通过以下方式将这些转换为颜色限制

% Get the DICOM header which contains the WindowCenter and WindowWidth tags
dcm = dicominfo(filename);

% Compute the lower and upper ranges for display
lims = [dcm.WindowCenter - (dcm.WindowWidth / 2), ...
        dcm.WindowCenter + (dcm.WindowWidth / 2)];

% Load in the actual image data
img = dicomread(dcm);

% Display with the limits computed above
imshow(img, lims);

或者更简单

lims = dcm.WindowCenter + [-0.5 0.5] * dcm.WindowWidth;

如果这些值不可接受,那么最好提供用户可调节的窗口/水平(例如imtool中的对比度工具),因为不可能有任何方法可靠地获得“可接受的”对比度因为它是主观的。