2012-03-21 116 views
8

我想请教一下这个函数在MATLAB dicomread如何在matlab中显示dicom图像?

例如:

a = dicomread ('m.dcm'); 
imshow(a) 

的图像在屏幕显示,但它是非常黑暗的.....我不知道事情是这样的黑暗并不正常。 我检查了不同的dicom图像,但问题依然存在。 我希望你能提前帮助我和 。

回答

8

如果你正在处理的黑白图像时,可以设置最小和最大像素值之间的线性缩放比例如下:

img = dicomread('filename'); 
imshow(img, [minAllowedPixValue maxAllowedPixValue]); 

或者,您可以在整个动态范围内显示图像:

imshow(img, []); 
+0

谢谢你解释..我现在明白了。再次感谢你 – 2012-03-22 23:06:42

0

dicomread返回多波段图像。

尝试

a = dicomread ('m.dcm'); 
figure();imshow(a(:,:,:,1)); 
+0

我想什么ü告诉我....问题依然存在。 ...图像显得很暗。 – 2012-03-21 15:16:52

+0

谢谢你试图帮助我。 – 2012-03-21 15:17:19

+0

@ user-x,你可以发布图片吗? – 2012-03-21 16:45:57

4

我认为你需要与数据一起读出的图像颜色表,然后把它传递给IMSHOW:

[a, amap] = dicomread ('m.dcm'); 
imshow(a,amap) 
+0

非常感谢你.....真的做到了。 – 2012-03-21 17:51:41

0

尝试

im = dicomread('image.dcm');

im = im2double(im); % this line to convert from uint16 to double

im = mat2gray(im); % this line to put the data in range [0,1]

figure;imshow(im);