Matlab图像处理

您所在的位置:网站首页 rgb方块叠加实验生成红色块生成蓝色块 Matlab图像处理

Matlab图像处理

2024-07-10 08:17| 来源: 网络整理| 查看: 265

1、问题提出

读取RGB彩色图像,将红色分量,绿色分量。蓝色分量提取出来,分别进行如下变化:像素值小于100的改为0,像素值大于200的改成255,其他像素值乘以2再减去60,然后进行各分量的组合得到新的图像。

2、程序编写:

本程序主要运用for循环语句,和一些基本的函数库:imread(读取图片)、cat(进行RGB各分量的组合)、imshow(绘制图像)。采用的图片为RGB彩色图片,像素大小为512×480,文件命名frutis.jpg,如下: 在这里插入图片描述 (1)RGB分量的读取

%读取分量 rgb_image=imread('fruits.jpg');%读取图片 fR=rgb_image(:, :, 1);%读取红色分量 fG=rgb_image(:, :, 2);%读取绿色分量 fB=rgb_image(:, :, 3);%读取蓝色分量

(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