
clear all,clc;
im=imread('1jpg');%1jpg为,在m文件所在目录下
s=size(im);
R=im(:,:,1);
G=im(:,:,2);
B=im(:,:,3);
R=reshape(R,[s(1),s(2)]);
G=reshape(G,[s(1),s(2)]);
B=reshape(B,[s(1),s(2)]);
r=mean(mean(R));%红色均值
g=mean(mean(G));%绿色均值
b=mean(mean(B));%蓝色均值
可以用RGB颜色值转十六进制颜色码转换工具将rgb格式颜色转换成十六进制颜色。
1、打开百度搜索“rgb转十六进制”,在展开的搜索结果中找到RGB颜色值转十六进制颜色码转换工具并点击进入:
2、进入工具后,在RGB颜色值转换成十六进制颜色码后面输入RGB颜色值,然后点击“转换”按钮即可将颜色值转换成十六进制颜色码:
3、如果需要将十六进制颜色码转换成RGB颜色值,可以输入十六进制颜色码,然后点击“转换”按钮获取RGB颜色值:
picture1显示源图,picture2显示翻转后的,用下面的代码就可以实现镜像:
'左右翻转
Picture2PaintPicture Picture1Picture, Picture1Width, 0, -Picture1Width, Picture1Height
'上下翻转
Picture2PaintPicture Picture1Picture, 0, Picture1Height, Picture1Width, -Picture1Height
取点的办法比较麻烦,用Picture1Point(x,y)获取该点的颜色值,并用Pircture2PSet(x,y),nColor画点,nColor就是先前获取的点的颜色值。将获取的点保存到二维数组,翻转的原理就是按不同的顺序读取数组并显示。比如左右翻转就是按逆序读取横向的数据,纵向按原来顺序读取。
不对~~~虽然你的代码在特定宽度的下读取可能会正确(例如宽为800个像素,刚好可以被4整除);但如果宽度为799像素你的程序就错了,BMP是按四字节对齐的;例如现在有一张24位的,宽是799像素,这样一行的像素占用的字节数有效的为7993个字节,但是保存到BMP里的数据却是7993+3个字节,就是说,有3个字节是无用的,纯粹为了按DWORD对齐,所以你在处理非32位BMP时要注意;
32位图当然不会出现上面的那种问题,无论它宽是多少,肯定能被4整除的
能理解吗?
以上就是关于如何用matlab手动取出彩色图像的RGB值并保存 请写出详细程序,急全部的内容,包括:如何用matlab手动取出彩色图像的RGB值并保存 请写出详细程序,急、如何获取网页中颜色的代码、vb图像的镜像处理算法思路,急!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)