Atitit  从 RGB 到 HSL 或 HSV 的转换

Atitit  从 RGB 到 HSL 或 HSV 的转换

1.1. 从 RGB 到 HSL 或 HSV 的转换公式与原理1

1.2. public static HSV RGB2HSV(Color clr) {2

1.3. 参考资料2

 

1.1. 从 RGB 到 HSL 或 HSV 的转换公式与原理

设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数。设 max 等价于 r, g 和 b 中的最大者。设 min 等于这些值中的最小者。要找到在 HSL 空间中的 (h, s, l) 值,这里的 h ∈ [0, 360)是角度的色相角,而 s, l ∈ [0,1] 是饱和度和亮度,计算为:

h 的值通常规范化到位于 0 到 360°之间。而 h = 0 用于 max = min 的(就是灰色)时候而不是留下 h 未定义。

HSL 和 HSV 有同样的色相定义,但是其他分量不同。HSV 颜色的 s 和 v 的值定义如下:

1.2. public static HSV RGB2HSV(Color clr) {

float r = (float) clr.getRed();

float g = (float) clr.getGreen();

float b = (float) clr.getBlue();

float max = max(r, g, b);

float min = min(r, g, b);

float h = 0;

if (max == min)

h = 0;

else if (r == max && g >= b)

h = (g - b) / (max - min) * 60;

else if (r == max && g < b)

h = (g - b) / (max - min) + 360;

else if (g == max)

h = (b - r) / (max - min) * 60 + 120;

else if (b == max)

h = (r - g) / (max - min) * 60 + 240;

float s = (max - min) / max;

if (max == 0)

s = 0;

HSV hsv = new HSV(h, s, max);

return hsv;

}

1.3. 参考资料

颜色空间RGB与HSV(HSL)的转换 - jiangxinyu的专栏 - 博客频道 - CSDN.NET.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:[email protected]

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

时间: 2024-10-14 14:40:37

Atitit  从 RGB 到 HSL 或 HSV 的转换的相关文章

关于HSL和HSV颜色空间的详细论述

目前在计算机视觉领域存在着较多类型的颜色空间(color space).HSL和HSV是两种最常见的圆柱坐标表示的颜色模型,它重新影射了RGB模型,从而能够视觉上比RGB模型更具有视觉直观性. HSV颜色空间 HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个圆锥形子集,圆锥的顶面对应于V=1. 它包含RGB模型中的R=1,G=1,B=1 三个面,所代表的颜色较亮.色彩H由绕V轴的旋转角给定.红色对应于 角度0° ,绿色对应于角度120°,蓝色对应于角度24

RGB、CMY、HSV、HSL颜色空间

1.颜色空间(又称彩色模型.色彩空间. 彩色系统等)是对色彩的一种描述方式,定义有很多种,区别在于面向不同的应用背景. 颜色空间的应用背景: 显示器中采用的RGB颜色空间是基于物体发光定义的(RGB对应光的三原色:Red,Green,Blue): 工业印刷中常用的CMY颜色空间是基于光反射定义的(CMY对应了绘画中的三原色:Cyan,Magenta,Yellow): HSV.HSL两个颜色空间都是从人视觉的直观反映而提出来的(H是色调,S是饱和度,I是强度). 2.RGB颜色空间 基于颜色的加法

RGB和HSL色彩的相互转换

转自: http://blog.csdn.net/aniven/article/details/2205851 RGB和HSL(也叫HSB/HSV)是两种色彩空间,即:红,绿,蓝(Red,Green,Blue)和色调,饱和度,亮度(Hue,Saturation,Lightness或Brightness或Value),前者适用于机器采样,目前的显示器颜色即由这三种基色构成,而后者更符合人类的直观感觉,比如人一般表达一个颜色会这样说:有点浓的暗红色.而不会说红色占多少,绿色占多少,蓝色占多少.   

D3.js绘制 颜色:RGB、HSL和插值 (V3版本)

颜色和插值 计算机中的颜色,常用的标准有RGB和HSL. RGB:色彩模式是通过对红(Red).绿(Green).蓝(Blue)三个颜色通道相互叠加来得到额各式各样的颜色.三个通道的值得范围都是0~255,因此总共能表示16777216(255*255*255)种,即一千六百多万种颜色.几乎包括了人类所能识别的所有颜色,是应用最广泛的色彩模式. HSL:色彩模式是通过色相(Hue).饱和度(Saturation).明度(Lightness)三个通道的相互叠加来得到各种颜色的.其中,色相的范围为0

RGB颜色值与十六进制颜色的转换

前端初初初级学者有可能也会遇到RGB颜色值与十六进制颜色的转换问题,分享一个在线转换网址,很是方便,http://www.sioe.cn/yingyong/yanse-rgb-16/,一键解决问题 原文地址:https://www.cnblogs.com/asasas/p/9459686.html

彩色图像--色彩空间 HSI(HSL)、HSV(HSB)

学习DIP第66天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 色彩空间介绍最后两种与人类感知相对较接近的两种空间,彩色图像处理后面的内容大部分用在图像的基础处理,而如果想学习图像分析,应该开始学习一些模式识别和机器学习的算法,打算最近开始学习一些,并且开一个新的博客主题,欢迎讨论... 今天介绍下两种

【python】RGB图片到灰度图的转换

在做立体匹配求深度图的时候遇到这个问题,用惯了matlab的rgb2gray,倒是不熟悉python的实现,在网上找到了相关方案,记下来已作备用 RGB到灰度图转换公式: Y' = 0.299 R + 0.587 G + 0.114 B 自定义转换函数: 1 import numpy as np 2 3 def rgb2gray(rgb): 4 return np.dot(rgb[...,:3], [0.299, 0.587, 0.144]) 调用: 1 grayPic = rgb2gray(r

RGB颜色值与十六进制颜色码转换工具

RGB颜色值转换成十六进制颜色码:      十六进制颜色码转换成RGB颜色值:     颜色码对照表 颜色 英文代码 形象描述 十六进制 RGB LightPink 浅粉红 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 255,192,203 Crimson 猩红 #DC143C 220,20,60 LavenderBlush 脸红的淡紫色 #FFF0F5 255,240,245 PaleVioletRed 苍白的紫罗兰红色 #DB7093 219,112,147 H

颜色空间RGB与HSV(HSL)的转换

转自:http://blog.csdn.net/jiangxinyu/article/details/8000999 一般的3D编程只需要使用RGB颜色空间就好了,但其实美术人员更多的是使用HSV(HSL),因为可以方便的调整饱和度和亮度. 有时候美术需要程序帮助调整饱和度来达到特定风格的渲染效果,这时候就需要转换颜色空间了. 出处:http://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 H