不知道你为什么要生成第一、二、三列分别表示每个像素的r、g、b值的矩阵,其实matlab自动把三个通道分开是有道理的,处理会很方便,如果你一定要生产你想要的矩阵,可尝试以下几种方法:
1以进制的格式读,然后去掉图像的信息头(注意每个格式的头文件包含的字节数都不一样的,以真彩色BMP为例,其头文件有54个字节,去掉着54个字节后就是图像的RGB信息了)
2第二种会稍微方便些,用imread读图生成一个三维矩阵,然后你新建一个你想要的二维矩阵,把前面得到的RGB信息填充进去
使用imread函数
例如
f = imread('e:\imagejpg');
f是得到的图像矩阵,e:\imagejpg是欲读取图像所在路径,如果就在当前工作目录,也可以使用相对路径的形式。
维数不匹配,赋值的前提条件一定是两个相同维数的矩阵,你把1n的矩阵赋值到n1的矩阵变量上,明显会冲突,所以可以将x,y求反之后在赋值,如果x,y的长度相同的话,下列式子就是你想要的结果:
R(1,:)=x';
R(:,1)=y';
如果x,y长度不相同的话就把多余的删了,少的补上值
以上就是关于用matlab读取彩色图片,并提取RGB值按像素顺序放到一个三维矩阵里,该怎么写程序全部的内容,包括:用matlab读取彩色图片,并提取RGB值按像素顺序放到一个三维矩阵里,该怎么写程序、如何在MATLAB中读RGB 图像、关于matlab中彩色图像中RGB的坐标提取与赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)