查看: 33074|回复: 15|关注: 0

[已答复] 请问高手rgb2gray函数怎么用?!

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2010-6-23 17:06:34 | 显示全部楼层 |阅读模式
当运行如下代码时:
[X,map] = imread('testpic01.bmp');
gmap = rgb2gray(map);
figure, imshow(X,map), figure, imshow(X,gmap);
为什么总是出现如下错误:

??? Error using ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.
Error in ==> rgb2gray at 35
X = parse_inputs(varargin{:});

请大家解答一下!感谢万分!!!

[ 本帖最后由 lskyp 于 2010-6-23 17:41 编辑 ]

新手

19 麦片

财富积分


050


36

主题

626

帖子

3

最佳答案
发表于 2010-6-23 17:20:28 | 显示全部楼层
rgb2gray(x);
一般第一个参数总是最重要的

退役版主

579 麦片

财富积分


小博


137

主题

3690

帖子

124

最佳答案
  • 关注者: 88
发表于 2010-6-23 17:40:48 | 显示全部楼层
主要是就是将rgb的三维矩阵变换为灰度矩阵,你怎么只把个map输入了,主要是对x操作的

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2010-6-23 21:00:14 | 显示全部楼层

回复 3# lskyp 的帖子

这个程序是正确的,这个程序是MATLAB的帮助中给的示例程序!只是'testpic01.bmp'这个图片不是MATLAB系统的中的,而是我自己的,运行MATLAB自带的图片不会出错,但是运行这个会出错,不知道为什么?!

新手

5 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2010-7-1 20:47:05 | 显示全部楼层
等待答案!

新手

6 麦片

财富积分


050


18

主题

108

帖子

0

最佳答案
发表于 2010-7-2 10:19:45 | 显示全部楼层
testpic01.bmp不是真彩色图像,rgb2gray函数要输入三位的矩阵变量。

新手

13 麦片

财富积分


050


5

主题

45

帖子

1

最佳答案
发表于 2010-7-2 13:27:22 | 显示全部楼层
问题出在读入图像 imread('testpic01.bmp');这里,
这是imread读图像一般都会碰到的常见问题,rgb2gray(X)的意思是把一幅由R G B 三个通道表征的图像 通过一个比例公式转换为 仅有一个通道的图像 即灰度图像,由出错的提示“??? Error using ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.
”显然LZ你读入的图像并不是R G B 三通道标准的图像,所以可以不用调用rgb2gray()这个函数,直接进行后续处理即可。不知道我说清楚了没有。

新手

5 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
发表于 2011-11-16 09:41:43 | 显示全部楼层

回复 7# yingo8577 的帖子

请问下,我也出现过楼主的问题,就是,直接对自己的图片经行处理,出现错误,如果使用rgb2gray函数则可以正确处理,请问下是否处理图片时都要带山rgb2gray这个函数呢?如何区别rgb三通道图片和一通道灰度图像?谢谢

新手

11 麦片

财富积分


050


7

主题

70

帖子

0

最佳答案
发表于 2011-12-8 20:31:12 | 显示全部楼层
[X,map] = imread('testpic01.bmp');
改为map = imread('testpic01.bmp');
至于为什么,我也不懂

新手

5 麦片

财富积分


050


0

主题

20

帖子

0

最佳答案
发表于 2011-12-28 15:32:46 | 显示全部楼层
转换吧  反正不会有错得
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表