A=I(:,:,1);B=I(:,:,2);C=I(:,:,3);matlab这三句话是什么意思?其中I是读取的图像 I=imread('lena.jpg')

如题所述

彩色图像有RGB三个通道,而且RGB三个分量值是不同的,1,2,3就提取了这三个图像,看起来像黑白照一样的。希望能对你有帮助。追问

运行以上三句话,显示 ??? Index exceeds matrix dimensions. 这个错误 ?请问是什么原因呢?怎么改进?

追答

意思就是说矩阵维数不匹配,你应该是没有定义A,B,C三个为矩阵,并且是与 I 的维数相同的,比如说:
[m,n]=size(I);
A=zeros(m,n);然后再去提取三个分量,分别赋值给A,B,C,明白了吗?
我给你运行了一下,程序如下:
i=imread('football.jpg');
figure,imshow(i);
[m,n]=size(i) %读取i的大小
a=zeros(m,n); %定义a为m*n大小的矩阵
b=zeros(m,n);
c=zeros(m,n);
a=i(:,:,1);
figure,imshow(a);
b=i(:,:,2);
figure,imshow(b);
c=i(:,:,3);
figure,imshow(c);

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答