当前位置:   article > 正文

OpenCV颜色识别(所有颜色均可识别)_opencv识别颜色并标记

opencv识别颜色并标记

OpenCV颜色识别实例(所有颜色均可识别)

欢迎访问我的博客sakuraの绘梨衣
本文中的颜色识别为红色,颜色阈值设置如下:

lower_apple = np.array([0, 100, 100])
higher_apple = np.array([10, 200, 200])
  • 1
  • 2

识别其他颜色可以参考HSV颜色阈值设置进行更改

下面是识别代码,注释很详细:

import cv2
import numpy as np


def red_identify(img):

    # 灰度图
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 转换为HSV
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    # 二值化处理
    lower_apple = np.array([0, 100, 100])
    higher_apple = np.array([10, 200, 200])

    mask = cv2.inRange(hsv, lower_apple, higher_apple)

    # 膨胀操作
    kernel = np.ones([5, 5], dtype=np.uint8)
    dilate = cv2.dilate(mask, kernel, iterations=1)

    # 画出轮廓
    cnts, hierarchy = cv2.findContours(dilate, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

    # 判断是否有轮廓
    if len(cnts) == 0:

        # 没有即显示原图
        cv2.imshow("red_identify", img)
        return

    max_cnt = max(cnts, key=cv2.contourArea)
    cv2.drawContours(img, max_cnt, -1, (0, 0, 255), 2)

    # 最大外接矩形
    (x, y, w, h) = cv2.boundingRect(max_cnt)
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 3)

    cv2.imshow("red_identify", img)


if __name__ == "__main__":

    # 打开摄像头
    cap = cv2.VideoCapture(0)

    # 设置摄像头参数,3和4为像素大小,5为帧率
    cap.set(3, 256)
    cap.set(4, 256)
    cap.set(5, 60)

    while True:

        # 循环读取每一帧
        flag, frame = cap.read()

        #  读取失败
        if not flag:
            print("Camera error!")
            break

        # 调用颜色识别
        red_identify(frame)

        # 若没有按下q键,则每10毫秒显示一帧(OxFF为"q"的ASCII码)
        if cv2.waitKey(10) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71

下面是识别效果:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/369973
推荐阅读
相关标签
  

闽ICP备14008679号