我计算了一个值在 0 到 255 之间的图像。当我使用 imageview() 时,图像以灰度级正确显示,但是当我想保存此图像或使用 imshow 显示它时,我有一个白色图像,或者有时会出现一些黑色像素:
而使用 imageview():
有人能帮我吗?
我认为您应该imshow(uint8(image));
在显示图像之前使用它。
Matlab 期望图像类型double
在 0..1 范围内,图像uint8
在 0..255 范围内。您可以自己转换范围(但在此过程中更改值),进行显式转换(并可能降低精度)或指示 Matlab 使用在图像矩阵中找到的最小值和最大值作为白色和黑色值以缩放到何时可视化。
请参见以下示例,其中包含uint8
Matlab 中的图像:
im = imread('moon.tif');
figure; imshow(im);
figure; imshow(double(im));
figure; imshow(double(im), []);
figure; imshow(im2double(im));