失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Matlab颜色转换——基于RGB分量的彩色图像的颜色转换

Matlab颜色转换——基于RGB分量的彩色图像的颜色转换

时间:2023-12-07 11:42:46

相关推荐

Matlab颜色转换——基于RGB分量的彩色图像的颜色转换

文章目录

一、RGB颜色对照表二、案例分析1.将绿色转换成紫色2.转换结果三、 总结最后

一、RGB颜色对照表

Matlab RGB颜色对照表(0-1之间):/autumnbabyjl/article/details/105330843

二、案例分析

1.将绿色转换成紫色

代码如下:

clearclc%读取分量rgb_image=imread('1.jpg');%读取图片[a,b]=size(rgb2gray(rgb_image));fR=rgb_image(:, :, 1);%读取红色分量fG=rgb_image(:, :, 2);%读取绿色分量fB=rgb_image(:, :, 3);%读取蓝色分量%对红色分量进行遍历fR=double(fR);%转换为双精度浮点类型for i=1:1:afor j=1:1:b %遍历fR2=fR;endendfR2=uint8(fR2);%强制将数据转换为8位无符号整数%对绿色分量进行遍历fG=double(fG);%转换为双精度浮点类型for i=1:1:afor j=1:1:b %遍历fG2=fG;endendfG2=uint8(fG2);%强制将数据转换为8位无符号整数%对蓝色分量进行遍历fB=double(fB);%转换为双精度浮点类型for i=1:1:afor j=1:1:b %遍历fB2=fB;endendfB2=uint8(fB2);%强制将数据转换为8位无符号整数for i=1:1:afor j=1:1:b %遍历if fR2(i,j)<50 && fG2(i,j)>205 && fB2(i,j)<50%绿色RGB颜色对照表为(0,255,0),我们对其进行约束,误差范围定为50fR2(i,j)=255;fG2(i,j)=0;fB2(i,j)=255;%紫色RGB颜色对照表为(0,255,0),我们对满足约束的进行赋值elsefR2(i,j)=fR2(i,j);fG2(i,j)=fG2(i,j);fB2(i,j)=fB2(i,j);%如果不满足约束则不改变。endendend%组合后的图像rgb_1=cat(3,fR2,fG2,fB2);%利用变换后的各分量进行图像的组合subplot(121)imshow(rgb_image)%原图title('原图')subplot(122)imshow(rgb_1)%变换后的图title('变化后的图')

2.转换结果

三、 总结

采用的是基于RGB像素点的方法,先将彩色图片RGB分量读取,找出原色彩对应的像素点,然后查表对其进行赋值,其他的像素点不变,最后对RGB分量进行组合。需要注意的是:以本次实验绿色为例,由于人眼的误差,不能保证所有的绿色区域一定是(0,255,0),所以需要对选取范围进行扩大。进一步拓展,要求将特定区域的颜色进行转换,就需要先对图片位置进行确定,接下来再进行图片像素的转换。

最后

不定期发布一些matlab设计内容,敬请期待。包括但不限于如下内容:信号处理、通信仿真、gui设计、matlab appdesigner,simulink仿真。有任何有关MATLAB的问题可加QQ:280708进行咨询。或扫码进行添加。

如果觉得《Matlab颜色转换——基于RGB分量的彩色图像的颜色转换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。