RGB图像转到HSI图像

参考:
http://blog.csdn.net/u014488388/article/details/50570452
http://www.bubuko.com/infodetail-1886725.html
http://blog.csdn.net/jolinxia/article/details/27963675
https://www.zhihu.com/question/20656077

HSV与HSI的区别

hsv里面的v指的是RGB里面的最大的值,v = max(max(r,g),b);而HSI的I是平均值,I=(r+g+b) / 3; 另外两个分量应该是一样的,如果只是需要h或者s的话可以用matlab自带的rgb2hsv了。

RGB转到HSI

为什么要引进HSI颜色模型呢?

相比原始的RGB图像,HSI图像对颜色信息的利用率更高,更适合于目标分析和目标分割等场景。
用一幅图来解释HSI的模型:
这里写图片描述
色 调(Hue):是指一种纯色的颜色属性,(色调与波长有关,是人对不同颜色的感受);
饱和度(Saturation ):是指纯色被白光稀释的程度的度量,(饱和度越大越鲜艳);
亮 度(Intensity):是一个主观因子,实际上是不可度量的,(亮度和图像灰度是颜色的明亮程度)。
通俗地讲,H=色相;决定是什么颜色,S=饱和度(纯度);决定颜色浓淡,B=明度(亮度);决定照射在颜色上的白光有多亮。这个解释是我见过真正一句话说明白HSI是什么的回答。

RGB和HSI的对应关系

首先我们应该明确2个颜色模型之间的对应关系。看下图:
这里写图片描述
这里写图片描述

matlab代码

function hsi = rgb2hsi(rgb)
% hsi = rgb2hsi(rgb)把一幅RGB图像转换为HSI图像,
% 输入图像是一个彩色像素的M×N×3的数组,
% 其中每一个彩色像素都在特定空间位置的彩色图像中对应红、绿、蓝三个分量。
% 假如所有的RGB分量是均衡的,那么HSI转换就是未定义的。
% 输入图像可能是double(取值范围是[0, 1]),uint8或 uint16。
%
% 输出HSI图像是double,
% 其中hsi(:, :, 1)是色度分量,它的范围是除以2*pi后的[0, 1];
% hsi(:, :, 2)是饱和度分量,范围是[0, 1];
% hsi(:, :, 3)是亮度分量,范围是[0, 1]。

% 抽取图像分量
rgb = im2double(rgb);
r = rgb(:, :, 1);
g = rgb(:, :, 2);
b = rgb(:, :, 3);

% 执行转换方程
% 实现H分量
num = 0.5*((r - g) + (r - b));
den = sqrt((r - g).^2 + (r - b).*(g - b));
% 防止除数为0
theta = acos(num./(den + eps)); 

H = theta;
H(b > g) = 2*pi - H(b > g);
H = H/(2*pi);
% 实现S分量 
num = min(min(r, g), b);
den = r + g + b;
% 防止除数为0
den(den == 0) = eps; 
S = 1 - 3.* num./den;

H(S == 0) = 0;

%实现I分量
I = (r + g + b)/3;

% 将3个分量联合成为一个HSI图像
hsi = cat(3, H, S, I);
%hsi = H;    %分别返回3个分量
%hsi = S;
%hsi = I;
img = imread('images/lena.jpg');
hsi = rgb2hsi(img);
imshow(hsi)

HSI 空间图像的融合方法

顺便记录一下该融合方法,待有时间看看相关。mark
以Landsat TM多光谱图像与全色Pan图像的融合为例,HIS空间图像融合步骤一般为:
1.对图像的RGB空间中的R、G、B变换,得到I、H、S三个分量;
2.再将亮度分量I按规则融合,得到新的亮度分量newI;
3.再将newI、H、S反变换回RGB空间,完成融合过程。

  • 34
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值