作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 20:26:06
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);