Matlab报错:错误使用 rgb2gray>parse_inputs (第 79 行) MAP 必须为 m x 3 的数组。请对 RGB 和灰度图像使用 im2gray。

  • 拟解决问题:
    Matlab报错:错误使用 rgb2gray>parse_inputs (第 79 行) MAP 必须为 m x 3 的数组。请对 RGB 和灰度图像使用 im2gray。
  • 下述程序块你读取一张彩色图片,并转为灰度图像后显示。
[X,map] = imread("laina.bmp");
newmap = rgb2gray(map);
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,imshow(X,map); %显示原图像
figure,imshow(X,newmap); %显示转换后的灰度图像
  • 报错原因
    读入图像不是GRB三通道的
  • 解决方法
    打开画图软件,将该图另存为256色位图后添加到原工作路径中
  • 补充:
  • 单色位图、16色位图、256色位图、24位位图含义
格式 含义
单色位图 每个像素最多可以表示2种颜色,只需要使用长度为1的二进制位来表示,因此每个像素占1/8byte
16色位图 每个像素最多可以表示16种颜色,所以只需要长度为4的二进制表示,因此每个像素占1/2byte
256色位图 每个像素最多可以表示256中颜色,所以只需要长度是8的二级制位表示就可以了,因此每个像素占1byte
24位位图 即RGB三原色位图 每个像素占3个byte

你可能感兴趣的:(Matlab数字图像处理,图像处理,matlab)