《数字图像处理》——RGB模型与HSI模型的相互转换

该博客详细介绍了RGB到HSI颜色空间的转换函数,并提供了HSI到RGB的转换算法。接着,通过使用5x5平均核对HSI颜色空间中的I分量进行平滑处理,最后将处理后的HSI转换回RGB图像进行显示。实验结果显示了平滑后的图像。
摘要由CSDN通过智能技术生成

一、RGB→HSI

function [H,S,I]=rgb2hsi(colorfig)
colorfig=im2double(colorfig);
R=colorfig(:,:,1);G=colorfig(:,:,2);B=colorfig(:,:,3);
theta=acos((0.5*((R-G)+(R-B)))./((R-G).^2+(R-B).*(G-B)).^0.5+eps);
H = theta;
H(B > G) = 2*pi - H(B > G);
H = H/(2*pi);
num = min(min(R, G),B);
den = R +G + B;
den(den == 0) = eps;
S = 1 - 3.* num./den;
H(S == 0) = 0;
I = (R + G + B)/3;

二、HSI→RGB

function [R,G,B]=hsi2rgb(hsi)
H=hsi(:,:,1)*2*pi;
S=hsi(:,:,2);
I=hsi(:,:,3);
R=zeros(size(hsi,1),size(hsi,2));
G=zeros(size(hsi,1),size(hsi,2));
B=zeros(size(hsi,1),size(hsi,2));
%RG 扇区 (0<=H<2*pi/3)
c=find((0<=H) & (H<2*pi/3));
B(c)=I(c).*(1-S(c));
R(c)=I(c).*(1+S(c).*cos(H(c))./cos((pi/3)-H(c)));
G(c)=3*I(c)-(R(c)+B(c));
%BG 扇区 (2*pi/3<=H<4*pi/3)
c=find((2*pi/3<=H) & (H<4*pi/3));
R(c)=I(c).*(1-S(c));
G(c)=I(c).*(1+S(c).*cos(H(c)-2*pi/3)./cos(pi-H(c)));
B(c)=3*I(c)-(R(c)+G(c));
%BR 扇区 (4*pi/3<=H<2*pi)
c=find((4*pi/3<=H) & (H<2*pi));
G(c)=I(c).*(1-S(c));
B(c)=I(c).*(1+S(c).*cos(H(c)-4*pi/3)./cos((5*pi/3)-H(c)));
R(c)=3*I(c)-(B(c)+G(c));

三、综合应用

保持图1的H分量和S分量不变,仅用大小为5×5的平均核对I分量进行平滑,然后把最终的HSI转换成RGB图像以便显示。

实验程序为:

clear all;close all;clc;
rgb_img=imread('实验5_测试图像\1.Lena.tif');
[H,S,I]=rgb2hsi(rgb_img);
w=1/25*ones(5,5);
I=imfilter(I,w,'symmetric','same');
hsi=cat(3,H,S,I);
[R,G,B]=hsi2rgb(hsi);
RGB_IMG=cat(3,R,G,B);
figure;imshow(RGB_IMG);title('平滑图像');

 实验结果为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空不见云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值