当我在MATLAB中加载这个PNG时,为什么会得到全黑/灰度图像?

use*_*729 9 matlab image file

当我运行此代码时:

>> I = imread('D:\Works\matlab\SecCode.php.png','png');
>> imshow(I);
Run Code Online (Sandbox Code Playgroud)

它始终显示全黑图像.它出什么问题了?

我正在使用的图像是这样的:

在此输入图像描述

gno*_*ice 12

啊,我现在明白了.问题是你有一个索引图像,并且还需要从中获取colormap参数imread.试试这个:

[I, map] = imread('D:\Works\matlab\SecCode.php.png', 'png');
imshow(I, map);
Run Code Online (Sandbox Code Playgroud)

可以在此处找到MATLAB中不同类型图像的描述.这是一个简短的总结:

  • 二进制图像:图像是一个logical数组,其中每个像素的值为0或1.
  • 索引图像:图像中的像素将索引存储到色图中,该色图是RGB值的M×3阵列.色彩映射通常与索引图像一起存储在图像文件中.
  • 强度(灰度)图像:图像中的像素各自包含表示强度的单个值.
  • RGB(真彩色)图像:图像是M×by-by-3阵列,其中每个像素具有红色,绿色和蓝色分量.