概要:通过在线取色器,可获得图片中某点的RGB格式的颜色值,进一步可通过py文件转换,得到各种格式(如HSV)的数值范围。

  1. 首先我们给出在线取色器的地址:
    PC端:http://www.jiniannet.com/Page/allcolor
    移动端:http://m.jiniannet.com/Page/allcolor

  2. 在取色器中上传图片文件,点击图片中的任意位置,便可获得该点对应的RGB值。
    在这里插入图片描述

  3. 我们获取4个点的RGB值,并将其一起输入到下面的py文件。然后我们通过py文件,将获取的RGB格式的颜色值转换为HSV格式的H、S、V值的上下限。当然,首先你要pip install opencv-pythonpip 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]))
  1. 输出为:
    在这里插入图片描述
    至此,我们分别得到了这四个点的H、S、V值的上下限。
    参考文献
    1、颜色空间的小数据,大不同的颜色天地
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐