imshow()显示灰色图像的白色图像

时间:2014-03-15 19:52:01

标签: matlab imageview imshow

我计算了一个介于0到255之间的图像。当我使用imageview()时,图像以灰度级正确显示,但当我想保存此图像或使用imshow显示时,我有一个白色图像,或者有时是黑色像素:

image with imshow(), it appears the same when I save

而使用imageview():

enter image description here

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

我认为您应该在显示之前在图像上使用imshow(uint8(image));

答案 1 :(得分:1)

Matlab期望double类型的图像在0..1范围内,而uint8的图像在0..255范围内。您可以自己转换范围(但在过程中更改值),执行显式转换(可能会松散的精度)或指示Matlab使用图像矩阵中找到的最小值和最大值作为白色和黑色值以缩放到何时可视化。

请参阅以下示例,并在Matlab中显示uint8图像:

im = imread('moon.tif');
figure; imshow(im);
figure; imshow(double(im));
figure; imshow(double(im), []);
figure; imshow(im2double(im));