Python opencv 根据HSV实现简单的颜色分类

该博客通过OpenCV库展示了如何使用HSV色彩空间进行颜色选择和跟踪。首先创建了一个HSV颜色选择器窗口,用户可以通过滑块调整H、S、V值来选择颜色。然后,从摄像头捕获视频帧,将BGR图像转换为HSV,并在画面中心检测像素值,根据HSV值判断颜色类别,如红色、橙色、黄色等。最后,在帧上显示识别的颜色并画出中心点。
摘要由CSDN通过智能技术生成
# hsv_color_picker
"""
import cv2
import numpy as np

def nothing(x):
    pass

cv2.namedWindow("frame")
cv2.createTrackbar("H","frame",0,179,nothing)
cv2.createTrackbar("S","frame",255,255,nothing)
cv2.createTrackbar("V","frame",255,255,nothing)

img_hsv=np.zeros((250,500,3),np.uint8)

while True:
    h=cv2.getTrackbarPos("H","frame")
    s=cv2.getTrackbarPos("S","frame")
    v=cv2.getTrackbarPos("V","frame")

    img_hsv[:]=(h,s,v)
    img_bgr=cv2.cvtColor(img_hsv,cv2.COLOR_HSV2BGR)

    cv2.imshow("frame",img_bgr)
    key=cv2.waitKey(1)
    if key==27:
        break
cv2.destroyWindow()
"""

import cv2

cap=cv2.VideoCapture(1)
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,720)


while True:
    _,frame=cap.read()
    hsv_frame=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    height,width,_=frame.shape

    cy,cx=height//2,width//2

    # 获取画面中心点像素值
    pixel_center=hsv_frame[cy,cx]
    hue_value=pixel_center[0]

    color="Undefined"
    if 0<hue_value<11 or 156<hue_value<180:
        color="RED"
    elif 11<hue_value<25:
        color="ORANGE"
    elif 26<hue_value<34:
        color="YELLOW"
    elif 35<hue_value<77:
        color="GREEN"
    elif 78<hue_value<99:
        color="Qing"
    elif 100<hue_value<124:
        color="BLUE"
    elif 125<hue_value<155:
        color="purple"
    # elif hue_value<170:
    #     color="PINK"
    else:
        pass
        # color="RED"


    pixel_center_bgr=frame[cx,cy]
    b,g,r=[int(i) for i in pixel_center_bgr]

    cv2.putText(frame,color,(10,70),0,1,(255,255,255),2)
    cv2.circle(frame,(cx,cy),8,(255,255,255),3)

    cv2.imshow("Frame",frame)
    key=cv2.waitKey(1)
    if key==27:
        break

cap.release()
cv2.destroyWindow()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐亦亦乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值