概要:通过在线取色器,可获得图片中某点的RGB格式的颜色值,进一步可通过py文件转换,得到各种格式(如HSV)的数值范围。
-
首先我们给出在线取色器的地址:
PC端:http://www.jiniannet.com/Page/allcolor
移动端:http://m.jiniannet.com/Page/allcolor -
在取色器中上传图片文件,点击图片中的任意位置,便可获得该点对应的RGB值。
-
我们获取4个点的RGB值,并将其一起输入到下面的py文件。然后我们通过py文件,将获取的RGB格式的颜色值转换为HSV格式的H、S、V值的上下限。当然,首先你要
pip install opencv-python
,pip install numpy
。代码如下:
# 取色器
# http://www.jiniannet.com/Page/allcolor
# 将获取的四个点的rgb值填入下方的rgb,即可得到四个点的hsv上下限
import cv2
import numpy as np
rgb = '#5C9CC0,#0775A8,#84A7BD,#346188'
rgb = rgb.split(',')
# 转换为BGR格式,并将16进制转换为10进制
bgr = [[int(r[5:7], 16), int(r[3:5], 16), int(r[1:3], 16)] for r in rgb]
# 转换为HSV格式
hsv = [list(cv2.cvtColor(np.uint8([[b]]), cv2.COLOR_BGR2HSV)[0][0]) for b in bgr]
hsv = np.array(hsv)
print('H:', min(hsv[:, 0]), max(hsv[:, 0]))
print('S:', min(hsv[:, 1]), max(hsv[:, 1]))
print('V:', min(hsv[:, 2]), max(hsv[:, 2]))
- 输出为:
至此,我们分别得到了这四个点的H、S、V值的上下限。
参考文献
1、颜色空间的小数据,大不同的颜色天地