`

RGB转HSL

阅读更多
	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.rar_HSL RGB_RGB转hsl_hsl_rgb h_rgb hsl

    HSL(色相、饱和度、亮度)和RGB(红、绿、蓝)是两种常见的颜色模型。本文将深入探讨RGB到HSL的转换过程,并提供相关的算法和源码。 RGB颜色模型是一种加性颜色模型,广泛应用于显示器、电视和电脑屏幕等显示设备...

    rgb_hsl转换

    RGB和HSL是两种颜色空间模型,用于表示和处理图像中的颜色。在图像处理和计算机视觉领域,了解和掌握这两种颜色空间的转换至关重要。本文将详细介绍RGB到HSL以及HSL到RGB的转换过程,并结合MATLAB代码进行解析。 ...

    STM32 RGB模型和HSL模型的互相转换

    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)

    RGB转hsl,本实验开机后,初始化摄像头模块(OV7670),如果初始化成功,则在LCD模块上面显示摄像头模块所拍摄 到的内容,实现摄像头驱动。通过串口,我们可以查看当前的帧率(这里是指LCD显示的帧率,而不是指OV7 ...

    RGB HSL颜色模式转换

    RGB和HSL是两种常见的颜色模型,用于在计算机图形学和网页设计中描述颜色。RGB(红绿蓝)是加性颜色模型,基于光的三原色原理,而HSL(色相、饱和度、亮度)是减性颜色模型,更符合人类对颜色的认知。 RGB模型基于...

    C# RGB与HSV,HSL,HTML颜色相互之前转换

    在C#中,没有内置的类来直接处理HSV或HSL颜色,但可以通过算法将RGB转换为HSV和HSL,反之亦然。例如,你可以编写自定义方法,利用三角函数和数学运算实现这种转换。 HTML颜色通常用6位十六进制表示,如`#FF0000`...

    RGB空间与HSL空间转换

    MATLAB代码,完成RGB空间与HSL空间的相互转换,验证后正反变换应该都没有错误!

    hsl2rgb 与 rgb2hsl matlab源码

    本篇文章将深入探讨HSL到RGB以及RGB到HSL的转换,并通过MATLAB源码来解释其实现过程。 首先,我们来看HSL颜色模型。HSL模型基于人类对颜色的直观感知,其中H代表色相,是颜色的基本特征,如红、黄、蓝等;S代表饱和...

    RGB到HSL颜色空间转换matlab程序代码

    RGB到HSL颜色空间转换是图像处理和计算机视觉领域中常见的色彩模型变换。RGB颜色空间是一种加性颜色模型,常用于数字图像表示,而HSL(色相、饱和度、亮度)颜色空间则更适合人类对颜色的理解。在MATLAB中进行这种...

    HSL与RGB相互转换的Demo

    - **HSL转RGB**:涉及到色相环上的色相选择,饱和度和亮度影响颜色的深浅和明暗。这个过程通常包括将HSL值转化为XYZ颜色空间,然后转换为RGB。 - **RGB转HSL**:首先,需要将RGB值归一化到0到1之间,然后计算最大...

    RGB和HSL色彩空间转换

    RGB和HSL色彩空间是两种常见的颜色表示方法,在图像处理、设计和计算机视觉等领域中广泛应用。RGB代表红(Red)、绿(Green)、蓝(Blue)三种原色,而HSL代表色相(Hue)、饱和度(Saturation)和亮度(Lightness)...

    RGB、HSB、HSL互相转换 源码

    RGB、HSB、HSL是颜色模型中的三种常见表示方式,它们在计算机图形学和图像处理领域中广泛应用。本文将详细介绍这三种颜色模型,并提供它们之间的转换方法。 RGB(Red, Green, Blue)颜色模型是一种加性颜色模型,...

    glsl-hsl2rgb:GLSL 中 HSL 到 RGB 颜色的转换

    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_...

    基于STM32设计实现采集TCS34725数据-通过RGB、HSL、HSV颜色空间进行分析.(毕设/课设/竞赛/实训/项目开发)

    嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...

    RGB空间与HSL空间的相互转换-MATLAB

    RGB颜色空间和HSL颜色空间是两种常见的颜色表示方法,它们在数字图像处理、图形设计以及计算机视觉等领域中广泛使用。MATLAB作为一种强大的数学计算和可视化工具,提供了方便的函数来实现这两种颜色空间之间的转换。...

    颜色模型互转 rgb hsl lab hsv

    RGB、HSL、Lab和HSV是四种常见的颜色模型,它们各有特点,适用于不同的应用场景。本项目提供了C++实现的颜色模型转换代码,方便在这些模型之间进行转换。 1. RGB(Red, Green, Blue)模型: RGB是最常见的一种颜色...

    rgb to hsl(rgb到色调,饱和度,亮度的转化,as3代码)

    RGB(红绿蓝)和HSL(色调、饱和度、亮度)是两种常见的颜色表示模型。RGB模型基于加色原理,常用于数字图像处理,它通过三种原色(红色、绿色和蓝色)的不同强度组合来表示各种颜色。而HSL模型则更符合人类对颜色的...

    图像的彩色变换,RGB?HSL.rar_HSL图像_RAW_RGB?HSL_图像类型HSL

    本主题聚焦于RGB(红绿蓝)色彩空间与HSL(色相、饱和度、亮度)色彩空间之间的转换。下面将详细介绍这两个色彩空间以及它们之间的转换。 **RGB色彩空间**是最常见的颜色模型之一,基于三种原色:红色(Red)、绿色...

    changspace.zip_RGB颜色空间转HSL空间_hsl

    RGB颜色空间和HSL颜色空间是两种常见的颜色表示方法,它们在计算机图形学、图像处理以及色彩设计等领域有着广泛的应用。RGB(Red, Green, Blue)颜色空间基于加性混色原理,通常用于显示器等发光设备,而HSL(Hue, ...

    aforge.net图形处理说明

    1. 线性颜色校正滤镜:包括 RGB/HSL/YCbCr 校正、亮度/对比度/饱和度校正等。 2. 非线性颜色校正滤镜:包括对比度拉伸、 histogram 等化、颜色重新映射、Gamma 校正等。 3. 图像重新着色滤镜:包括灰度、棕色、色相...

Global site tag (gtag.js) - Google Analytics