RGB渐变色
计算渐变色时最容易想到的是根据RGB三个通道分别依次增加相应步长来实现,例如从(200,0,0)渐变到(0,200,0),共5种颜色时,结果应为(200,0,0)、(150,50,0)、(100,100,0)、(50,150,0)、(0,200,0)。计算
RGB渐变色
的
Python3
代码如下:
# RGB渐变色def get_multi_colors_by_rgb(begin_color, end_color, color_count): if color_count
RGB渐变色存在的问题:
渐变色比较灰暗、不鲜艳。这是由于该算法生成的渐变色
色调、饱和度、亮度
的变化违反人类直觉造成的。
HSL
色彩模式是工业界的一种颜色标准,是通过对
色调(H)、饱和度(S)、亮度(L)
三个颜色通道的变化来得到各种颜色的,这个标准几乎包括了人类视力所能感知的所有颜色,是迄今运用最广的颜色系统之一。使用
HSL
色彩模式计算渐变色可以得到一系列比较鲜艳、明暗均匀的颜色。计算
HSL渐变色
的
Python3
代码如下:
import cv2 as cvimport numpy as np# RGB颜色转换为HSL颜色def rgb2hsl(rgb): rgb_normal = [[[rgb[0] / 255, rgb[1] / 255, rgb[2] / 255]]] hls = cv.cvtColor(np.array(rgb_normal, dtype=np.float32), cv.COLOR_RGB2HLS) return hls[0][0][0], hls[0][0][2], hls[0][0][1]活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看 # hls to hsl# HSL颜色转换为RGB颜色def hsl2rgb(hsl): hls = [[[hsl[0], hsl[2], hsl[1]]]] # hsl to hls rgb_normal = cv.cvtColor(np.array(hls, dtype=np.float32), cv.COLOR_HLS2RGB) return int(rgb_normal[0][0][0] * 255), int(rgb_normal[0][0][1] * 255), int(rgb_normal[0][0][2] * 255)# HSL渐变色def get_multi_colors_by_hsl(begin_color, end_color, color_count): if color_count
需要安装
opencv-python
:
pip install opencv-python
RGB颜色和HSL颜色的具体转换算法可参考:https://docs.opencv.org/4.1.0/de/d25/imgproc_color_conversions.html
RGB渐变色和HSL渐变色的对比
RGB渐变色和HSL渐变色的对比如下图所示,从红色(255,0,0)渐变到绿色(0,255,0),上半部分是RGB渐变色,下半部分是HSL渐变色。
可以看到RGB渐变色发灰发暗,而HSL渐变色比较鲜艳明亮,
推荐使用HSL渐变色
。
?
《渐变色RGB,RGB和HSL都属于颜色模型》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...