【问题标题】:imshow() displays a white image for a grey imageimshow() 为灰色图像显示白色图像
【发布时间】:2014-04-21 03:46:32
【问题描述】:

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

而使用 imageview():

有人可以帮我吗?

【问题讨论】:

  • 我不使用matlab,但我曾经遇到过这样的问题。尝试使用imshow(uint8(image));
  • 我的救星!有用!谢谢
  • 如果有效,请接受我的回答:)
  • @skm 我该如何接受? :)
  • 你已经接受了另一个答案...可能是,通过点击我的答案的“向上箭头”来“投票”我的答案(不是评论)

标签: matlab imageview imshow


【解决方案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));

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多