zoukankan      html  css  js  c++  java
  • opencv的色彩函数

    今天看opencv时学习了了一个识别色彩的函数。

    代码如下:

    font = cv2.FONT_HERSHEY_SIMPLEX
    img = cv2.imread(filepath+file)
    cimg = img
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    # color range
    lower_red1 = np.array([0, 43, 46])
    upper_red1 = np.array([10, 255, 255])
    lower_red2 = np.array([156, 45, 45])
    upper_red2 = np.array([180, 255, 255])
    lower_green = np.array([40, 50, 90])
    upper_green = np.array([80, 255, 255])
    # lower_yellow = np.array([15,100,100])
    # upper_yellow = np.array([35,255,255])
    lower_yellow = np.array([20, 150, 155])
    upper_yellow = np.array([35, 255, 255])
    mask1 = cv2.inRange(hsv, lower_red1, upper_red1)
    mask2 = cv2.inRange(hsv, lower_red2, upper_red2)
    maskg = cv2.inRange(hsv, lower_green, upper_green)
    masky = cv2.inRange(hsv, lower_yellow, upper_yellow)
    maskr = cv2.add(mask1, mask2)

    使用array固定一个颜色的范围让他识别,起初对这三个参数不怎么了解,后来百度资料得到以下信息:

    HSV(Hue,Saturation,Value)是根据颜色的直观特性由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型(HexconeModel)。这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。

    色调H

    用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;

    饱和度S

    取值范围为0.0~1.0,值越大,颜色越饱和。

    亮度V

    取值范围为0(黑色)~255(白色)。

    RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。

    HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向 黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

    由此我也找到了一个有关颜色的参数表:

     

  • 相关阅读:
    链路的有效性检测 及 基于TCP的通信为什么需要RETRY
    python join
    协程
    python socket 选项
    Spring @Resource、@Autowired、@Qualifier的区别
    maven插件
    代码中的特殊注释
    AOP 底层技术比较
    关于Android开发中的证书和密钥等问题
    tomcat部署web项目的3中方法
  • 原文地址:https://www.cnblogs.com/mhj666/p/11052226.html
Copyright © 2011-2022 走看看