我计算了一个介于0到255之间的图像。当我使用imageview()时,图像以灰度级正确显示,但当我想保存此图像或使用imshow显示时,我有一个白色图像,或者有时是黑色像素:
而使用imageview():
有人可以帮助我吗?
答案 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));