From: http://zhidao.baidu.com/question/6436440.html?fr=qrl
H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别相隔120度。互补色分别相差180度。
纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。
V表示色彩的明亮程度,范围从0到1。有一点要注意:它和光强度之间并没有直接的联系。
RGB转化到HSV的算法:
max=max(R,G,B)
min=min(R,G,B)
if R = max, H = (G-B)/(max-min)
if G = max, H = 2 + (B-R)/(max-min)
if B = max, H = 4 + (R-G)/(max-min)
H = H * 60
if H < 0, H = H + 360
V=max(R,G,B)
S=(max-min)/max
HSV转化到RGB的算法
if s = 0
R=G=B=V
else
H /= 60;
i = INTEGER(H)
f = H - i
a = V * ( 1 - s )
b = V * ( 1 - s * f )
c = V * ( 1 - s * (1 - f ) )
switch(i)
case 0: R = V; G = c; B = a;
case 1: R = b; G = v; B = a;
case 2: R = a; G = v; B = c;
case 3: R = a; G = b; B = v;
case 4: R = c; G = a; B = v;
case 5: R = v; G = a; B = b;
HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。
一般说来,人眼最大能区分128种不同的色彩,130种色饱和度,23种明暗度。如果我们用16Bit表示HSV的话,可以用7位存放H,4位存放S,5位存放V,即745或者655就可以满足我们的需要了。
由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛,如Photoshop(在Photoshop中叫HSB)等等,但这也决定了它不适合使用在光照模型中,许多光线混合运算、光强运算等都无法直接使用HSV来实现。
顺便提一下,另外一种直观颜色模型是HSL模型,该模型中前两个参数和HSV一样,而L表示亮度。它的三维表示为一双棱锥。因为用的不多,这里就不详细讲了。
参考资料:http://www.graphics.net.cn/bbs/computer_graphics/0023/212.asp
分享到:
相关推荐
### RGB与HSV颜色模型及其转换 #### 一、颜色模型简介 颜色模型是对颜色进行量化的一种方式,通过一组数字来定义颜色。常见的颜色模型有RGB(Red, Green, Blue)、HSV(Hue, Saturation, Value)等。不同的颜色模型...
RGB和HSV是两种颜色模型,它们在图像处理和计算机视觉领域中广泛应用。RGB代表红绿蓝,是一种加性颜色模型,常用于显示器等设备。HSV则代表色调(Hue)、饱和度(Saturation)和值(Value),是另一种常用的颜色表示...
RGB HSV 颜色模型转换matlab实现
在基于FPGA实现的RGB和HSV色空间转换算法中,设计者需要处理非线性的数学运算,这与用C语言等高级语言进行软件实现存在较大差异。硬件实现的优势在于处理速度快,能够满足实时视频处理系统的高要求,同时具备较高的...
### RGB到HSV颜色空间转换的MATLAB实现 在图像处理领域,不同的颜色空间有着不同的应用场景。其中,RGB(红绿蓝)模型是最常见的颜色表示方式之一,而HSV(色调、饱和度、值)则是一种更加直观地反映人类视觉感知的...
在C#中,没有内置的类来直接处理HSV或HSL颜色,但可以通过算法将RGB转换为HSV和HSL,反之亦然。例如,你可以编写自定义方法,利用三角函数和数学运算实现这种转换。 HTML颜色通常用6位十六进制表示,如`#FF0000`...
本算法改善了传统RGB2HSV,转换数据后不失真。RGB颜色空间和HSV颜色空间之间的转换是非线性的。普通RGB转HSV,HSV转RGB算法有一定失真。经测试,优化后的代码完全符合现场要求。
RGB转HSV应用程序是一款实用工具,它能够将图像或颜色数据中的RGB色彩模型转换为HSV色彩模型。RGB(红绿蓝)是计算机屏幕上显示颜色的主要方式,而HSV(色相、饱和度、亮度或价值)则是一种更符合人类直观感知颜色的...
**颜色模型介绍** ...总的来说,"ColorPicker"是一个实用的工具,不仅帮助我们理解RGB和HSV两种颜色模型之间的关系,也方便我们在实际项目中进行颜色操作。无论是设计工作还是编程需求,它都能提供有效的支持。
用matlab实现图形从RGB颜色空间到HSV颜色空间的转换
在实际应用中,HSV到RGB和RGB到HSV的转换经常被用于图像处理任务,如色彩选择、图像分割、色彩均衡等。了解和掌握这两种色彩空间的转换对于理解图像处理背后的原理和技术至关重要。在编程实现时,需要确保数值范围的...
RGB(红绿蓝)和HSV(色相、饱和度、亮度)是两种常见的颜色模型,广泛应用于计算机视觉和图像分析任务中。本文将详细介绍RGB到HSV的转换以及其在MATLAB中的实现,帮助理解这两种颜色模型及其相互转化的原理。 首先...
接下来详细介绍如何使用 ActionScript 实现 RGB 和 HSV 的相互转换。 ##### 2.1 RGB 到 HSV 的转换 RGB 到 HSV 的转换可以通过以下步骤实现: 1. **计算最大值 max 和最小值 min**:找出 R、G、B 三者中的最大值 ...
RGB2HSV.rar是一个压缩包,其中包含了一个名为"RGB2HSV.txt"的文件,这个文件很可能是用...总的来说,RGB2HSV.rar提供的工具和知识可以帮助我们在MATLAB环境中进行颜色空间转换,从而更好地理解和操作图像的颜色属性。
本资料主要探讨了在MATLAB环境中如何进行NTSC RGB与HSV之间的转换。这些转换在图像处理、计算机视觉以及色彩分析等应用中具有重要意义。 首先,我们要理解RGB颜色模型。RGB(Red, Green, Blue)是最常见的颜色模型...
在计算机图形学中,颜色表示方法是至关重要的,其中HSV(色相、饱和度、值)和RGB(红、绿、蓝)是最常见的两种颜色模型。这篇内容将深入讲解HSV和RGB之间的转换,并探讨如何利用VC++ 2005进行编程实现。 HSV,全称...
颜色直方图RGB转HSV
RGB和HSV是两种广泛使用的颜色模型,它们在图像处理和计算机视觉领域中有着重要的应用。RGB代表红(Red)、绿(Green)、蓝(Blue),是加性颜色模型,基于显示器等发光设备的工作原理,通过不同比例的红、绿、蓝光...
总的来说,学习RGB2HSV转换可以帮助我们更好地理解和操作图像的颜色信息,而提供的代码和文件则提供了一个实际应用的实例,让初学者能够动手实践并深入理解这一过程。通过研究这些代码,我们可以了解到如何在MATLAB...