作业帮 > 综合 > 作业

matlab中出现如下错误,请问是哪里出问题了?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 10:37:18
matlab中出现如下错误,请问是哪里出问题了?
RGB=imread('cameraman.tif');
I=rgb2gray(RGB);
I=im2double(I);
T=dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T')
mask1=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask1);
I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);
figure,imshow(I);
figure,imshow(B2);
figure,imshow(I2);
Error using ==> rgb2gray>parse_inputs
MAP must be a m x 3 array.
Error in ==> rgb2gray at 35
X = parse_inputs(varargin{:});
gb2gray()是把 rgb色彩空间的图片格式转换成二维的灰度图片 错误提示的意思是读取的RGB不是rgb色彩空间图片 你用的是matlab里自带的cameraman的图片把 那图片是灰度图像啊
你可以看看变量空间内RGB变量的尺寸大小 如果是M*N*3 有后面那个X3 才可以用rgb2gray这个函数 明白否?