在matlab中如何将bmp图片灰度化,得到灰度矩阵

??? Error using ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.
Error in ==> rgb2gray at 35
X = parse_inputs(varargin{:});使用rgb2gray时出现这样的错误,怎么处理啊???求大神指点啊

  BMP的图像是彩色的,也就是说有RGB三个波段,读出的图像数据是一个M*N*3的数组,如果想把它变成灰度图像的,只要分离出任意RGB中的一个分量即可,例如你的图像是1.BMP, x=imread('1.BMP');imshow(x); y=x(:,:,1); imshow(y);就可以了,不知道你是想怎样把图像变成灰度的,如果三个分量都想要的话,做个计算也可以的,例如把RGB做个平均;y=1/3*x(:,:,1)+1/3*x(:,:,2)+1/3*x(:,:,3);imshow(y);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-05
看看这样行不行
[X,map] = imread('####原图');
gmap = rgb2gray(map);
figure, imshow(X,map);追问

我用的是这个程序代码:
p=imread('01-01.bmp'); % 真彩图
p1=rgb2gray(p); % rgb 转为灰度图
但是最后出现这个错误,不知道为啥,只要用到rgb2gray函数就出现如下问题错误提示,网上搜了好多程序也是这样,我用的版本是7.0的,应该跟版本没有关系。

追答

你read出来的p是个三维矩阵吗?

本回答被网友采纳
相似回答