RGB图像转到HSI图像 您所在的位置:网站首页 rgb与hsi RGB图像转到HSI图像

RGB图像转到HSI图像

2024-01-09 21:44| 来源: 网络整理| 查看: 265

参考: 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空间,完成融合过程。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有