DICOM在matlab中进行灰度

时间:2013-05-19 00:51:49

标签: matlab dicom grayscale

如何在matlab中将DICOM图像转换为灰度图像?

感谢。

1 个答案:

答案 0 :(得分:3)

我不确定您所谈论的具体DICOM图像是否已经是灰度图像。以下代码演示了如何阅读和显示DICOM图像:

im = dicomread('sample.dcm'); % im will usually be of type uint16, already in grayscale
imshow(im, []);

如果您想要uint8灰度图像,请使用:

im2 = im2uint8(im);

然而,要尽可能保持精确度,最好这样做:

im2 = im2double(im);

要仅在显示图像时临时拉伸限制,请使用:

imshow(im2, []);

要永久拉伸限制(仅用于可视化而不用于分析),请使用:

% im3 elements will be between 0 and 255 (uint8) or 0 and 1 (double)
im3 = imadjust(im2, stretchlim(im2, 0), []); 
imshow(im3);

要将灰度图像写为jpg或png,请使用:

imwrite(im3, 'sample.png');

<强>更新

如果您的Matlab版本没有im2uint8im2double,假设您的DICOM图片始终为uin16,则可以快速解决将DICOM图像转换为更易于管理的格式的问题。 :

% convert uint16 values to double values
% im = double(im);
% keep the current relative intensity levels for analysis
% involving real values of intensity
im2 = im/2^16
% if displaying, create a new image with limits stretched to maximum 
% for visualization purposes. do not use this image for
% calculations involving intensity value.
im3 = im/(max(im(:));