数字图像处理学习笔记(十四)实现RGB到HSI空间的转换

实验截图:

  • RGB到HSI空间转换后的图:
    在这里插入图片描述

实验代码:

function hsi = rgb2hsi(rgb)
rgb = im2double(rgb);
 
R = rgb(:,:,1);%分离出R通道
G = rgb(:,:,2);%分离出G通道
B = rgb(:,:,3);%分离出B通道
%要计算出H的话,根据公式我们需要先算出θ角度
num = ((R - G) + (R - B))/2.0;%计算公式的上半部分
den = sqrt((R - G).^2 + (R - B).*(G - B));%计算公式的下半部分
theta = acos(num./(den + eps));%将上下两部分相除同时取一个反三角函数 这里加入的eps是防止除数为零
 
H = theta;%先令H为θ
H(B > G) = 2*pi - H(B > G);%如果B分量大于G分量 则取2π-θ
H = H/(2*pi);%得到H通道最终值
 
num = min(min(R,G),B);%取得RGB三通道中最小的
den = R + G + B;%取得RGB通道之和
S = 1 - 3.*num./(den + eps);%进行S通道的计算 这里的eps同样是防止除数为零
 
H(S == 0) = 0;
I = (R + G + B)/3;%进行I通道的计算
 
hsi = cat(3,H,S,I);%将HSI三通道联合成为一个HSI图像
end

结果分析:

  • RGB 向HSI 模型的转换是由一个基于笛卡尔直角坐标系的单位立方体向基于圆柱极坐标的双锥体的转换。基本要求是将RGB 中的亮度因素分离,将色度分解为色调和饱和度,并用角向量表示色调
    在这里插入图片描述

  • 相比原始的RGB图像,HSI图像对颜色信息的利用率更高,更适合于目标分析和目标分割等场景。

  • 色调(Hue):是指一种纯色的颜色属性,(色调与波长有关,是人对不同颜色的感受);

  • 饱和度(Saturation):是指纯色被白光稀释的程度的度量,(饱和度越大越鲜艳);

  • 亮度(Intensity):是一个主观因子,实际上是不可度量的,(亮度和图像灰度是颜色的明亮程度)。

  • 通俗地讲,H=色相;决定是什么颜色,S=饱和度(纯度);决定颜色浓淡,B=明度(亮度);决定照射在颜色上的白光有多亮。

  • 两个颜色模式的关系如下(RGB转HSI):

在这里插入图片描述在这里插入图片描述

  • 通过公式计算我们就可以不借助matlab的函数将RGB转化为HSI。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值