Matlab图像处理 |
您所在的位置:网站首页 › rgb方块叠加实验生成红色块生成蓝色块 › Matlab图像处理 |
1、问题提出
读取RGB彩色图像,将红色分量,绿色分量。蓝色分量提取出来,分别进行如下变化:像素值小于100的改为0,像素值大于200的改成255,其他像素值乘以2再减去60,然后进行各分量的组合得到新的图像。 2、程序编写:本程序主要运用for循环语句,和一些基本的函数库:imread(读取图片)、cat(进行RGB各分量的组合)、imshow(绘制图像)。采用的图片为RGB彩色图片,像素大小为512×480,文件命名frutis.jpg,如下: (2)RGB分量的变换 %对红色分量进行变换 fR2=double(fR);%转换为双精度浮点类型 for i=1:1:480 for j=1:1:512 %遍历 if(fR2(i,j)200) fR2(i,j)=255; %像素大于200的等于255 else fR2(i,j)=2.*fR2(i,j)-60;%其他的像素点乘以2倍再减60 end end end fR2=uint8(fR2);%强制将数据转换为8位无符号整数 %对绿色分量进行变换 fG2=double(fG);%转换为双精度浮点类型 for i=1:1:480 for j=1:1:512 %遍历 if(fG2(i,j)200) fG2(i,j)=255; %大于200的等于255 else fG2(i,j)=2.*fG2(i,j)-60;%其他的像素点乘以2倍再减60 end end end fG2=uint8(fG2);%强制将数据转换为8位无符号整数 %对蓝色分量进行变换 fB2=double(fB);%转换为双精度浮点类型 for i=1:1:480 for j=1:1:512 %遍历 if(fB2(i,j)200) fRB2(i,j)=255; %像素大于200的等于255 else fB2(i,j)=2.*fB2(i,j)-60;%其他的像素点乘以2倍再减60 end end end fR2=uint8(fR2);%强制将数据转换为8位无符号整数(3)RGB分量的组合 %组合变换后的图像 rgb_1=cat(3,fR2,fG2,fB2);%利用变换后的各分量进行图像的组合(4)绘制命令 %显示图像 figure(1) subplot(231);imshow(fR);title('原始红色分量'); subplot(234);imshow(fR2);title('变换后红色分量'); subplot(232);imshow(fG);title('原始绿色分量'); subplot(235);imshow(fG2);title('变换后绿色分量'); subplot(233);imshow(fB);title('原始蓝色分量'); subplot(236);imshow(fB2);title('变换后蓝色分量'); figure(2) subplot(121);imshow(rgb_image);title('原始图像'); subplot(122);imshow(rgb_1);title('重新组合后图像'); 3、运行结果如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真…希望能帮到你! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |