public static float[] getHsl(int[] rgb) {
float[] hsl = new float[3];
float R = rgb[0] / 255.f;
float G = rgb[1] / 255.f;
float B = rgb[2] / 255.f;
float max, min, diff, r_dist, g_dist, b_dist;
max = Math.max(Math.max(R, G), B);
min = Math.min(Math.min(R, G), B);
diff = max - min;
hsl[2] = (max + min) / 2;
if (diff == 0.f) {
hsl[0] = 0.f;
hsl[1] = 0.f;
} else {
if (hsl[2] < 0.5) {
hsl[1] = diff / (max + min);
} else {
hsl[1] = diff / (2 - max - min);
}
r_dist = (max - R) / diff;
g_dist = (max - G) / diff;
b_dist = (max - B) / diff;
if (R == max) {
hsl[0] = b_dist - g_dist;
} else if (G == max) {
hsl[1] = 2 + r_dist - b_dist;
} else if (B == max) {
hsl[2] = 4 + g_dist - r_dist;
}
hsl[0] = hsl[0] * 60;
if (hsl[0] < 0) {
hsl[0] += 360;
}
if (hsl[0] >= 360) {
hsl[0] -= 360;
}
}
return hsl;// colorValue = R + 256 * G + 65536 * B
}
分享到:
相关推荐
HSL(色相、饱和度、亮度)和RGB(红、绿、蓝)是两种常见的颜色模型。本文将深入探讨RGB到HSL的转换过程,并提供相关的算法和源码。 RGB颜色模型是一种加性颜色模型,广泛应用于显示器、电视和电脑屏幕等显示设备...
RGB和HSL是两种颜色空间模型,用于表示和处理图像中的颜色。在图像处理和计算机视觉领域,了解和掌握这两种颜色空间的转换至关重要。本文将详细介绍RGB到HSL以及HSL到RGB的转换过程,并结合MATLAB代码进行解析。 ...
void RGB_to_HSL(/*[in]*/const COLOR_RGB* rgb, /*[out]*/COLOR_HSL* hsl); void HSL_to_RGB(const COLOR_HSL* hsl, COLOR_RGB* rgb);
RGB转hsl,本实验开机后,初始化摄像头模块(OV7670),如果初始化成功,则在LCD模块上面显示摄像头模块所拍摄 到的内容,实现摄像头驱动。通过串口,我们可以查看当前的帧率(这里是指LCD显示的帧率,而不是指OV7 ...
RGB和HSL是两种常见的颜色模型,用于在计算机图形学和网页设计中描述颜色。RGB(红绿蓝)是加性颜色模型,基于光的三原色原理,而HSL(色相、饱和度、亮度)是减性颜色模型,更符合人类对颜色的认知。 RGB模型基于...
在C#中,没有内置的类来直接处理HSV或HSL颜色,但可以通过算法将RGB转换为HSV和HSL,反之亦然。例如,你可以编写自定义方法,利用三角函数和数学运算实现这种转换。 HTML颜色通常用6位十六进制表示,如`#FF0000`...
MATLAB代码,完成RGB空间与HSL空间的相互转换,验证后正反变换应该都没有错误!
本篇文章将深入探讨HSL到RGB以及RGB到HSL的转换,并通过MATLAB源码来解释其实现过程。 首先,我们来看HSL颜色模型。HSL模型基于人类对颜色的直观感知,其中H代表色相,是颜色的基本特征,如红、黄、蓝等;S代表饱和...
RGB到HSL颜色空间转换是图像处理和计算机视觉领域中常见的色彩模型变换。RGB颜色空间是一种加性颜色模型,常用于数字图像表示,而HSL(色相、饱和度、亮度)颜色空间则更适合人类对颜色的理解。在MATLAB中进行这种...
- **HSL转RGB**:涉及到色相环上的色相选择,饱和度和亮度影响颜色的深浅和明暗。这个过程通常包括将HSL值转化为XYZ颜色空间,然后转换为RGB。 - **RGB转HSL**:首先,需要将RGB值归一化到0到1之间,然后计算最大...
RGB和HSL色彩空间是两种常见的颜色表示方法,在图像处理、设计和计算机视觉等领域中广泛应用。RGB代表红(Red)、绿(Green)、蓝(Blue)三种原色,而HSL代表色相(Hue)、饱和度(Saturation)和亮度(Lightness)...
RGB、HSB、HSL是颜色模型中的三种常见表示方式,它们在计算机图形学和图像处理领域中广泛应用。本文将详细介绍这三种颜色模型,并提供它们之间的转换方法。 RGB(Red, Green, Blue)颜色模型是一种加性颜色模型,...
glsl-hsl2rgb GLSL 中的 HSL 到 RGB 颜色转换。 #pragma glslify : hsl2rgb = require(glsl - hsl2rgb) ... // 75deg hue, 50% sat, 25% lightness vec3 rgb = hsl2rgb( 75.0 / 360.0 , 0.5 , 0.25 ); gl_...
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...
RGB颜色空间和HSL颜色空间是两种常见的颜色表示方法,它们在数字图像处理、图形设计以及计算机视觉等领域中广泛使用。MATLAB作为一种强大的数学计算和可视化工具,提供了方便的函数来实现这两种颜色空间之间的转换。...
RGB、HSL、Lab和HSV是四种常见的颜色模型,它们各有特点,适用于不同的应用场景。本项目提供了C++实现的颜色模型转换代码,方便在这些模型之间进行转换。 1. RGB(Red, Green, Blue)模型: RGB是最常见的一种颜色...
RGB(红绿蓝)和HSL(色调、饱和度、亮度)是两种常见的颜色表示模型。RGB模型基于加色原理,常用于数字图像处理,它通过三种原色(红色、绿色和蓝色)的不同强度组合来表示各种颜色。而HSL模型则更符合人类对颜色的...
本主题聚焦于RGB(红绿蓝)色彩空间与HSL(色相、饱和度、亮度)色彩空间之间的转换。下面将详细介绍这两个色彩空间以及它们之间的转换。 **RGB色彩空间**是最常见的颜色模型之一,基于三种原色:红色(Red)、绿色...
RGB颜色空间和HSL颜色空间是两种常见的颜色表示方法,它们在计算机图形学、图像处理以及色彩设计等领域有着广泛的应用。RGB(Red, Green, Blue)颜色空间基于加性混色原理,通常用于显示器等发光设备,而HSL(Hue, ...
1. 线性颜色校正滤镜:包括 RGB/HSL/YCbCr 校正、亮度/对比度/饱和度校正等。 2. 非线性颜色校正滤镜:包括对比度拉伸、 histogram 等化、颜色重新映射、Gamma 校正等。 3. 图像重新着色滤镜:包括灰度、棕色、色相...