图像处理笔记(4)---- OpenCV 对象追踪

本文介绍了一种使用OpenCV和Python进行实时视频流中多色对象检测的方法。通过定义HSV色彩空间中的特定阈值,可以同时提取红色、蓝色和绿色的对象。此方法利用掩膜和逐像素操作来实现目标颜色的精确提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试找到一种方法来提取多个彩色对象,例如,同时提取红色,蓝色,绿色对象。

import cv2 as cv
import numpy as np

cap = cv.VideoCapture(0)
while (1):
    #读取帧
    _,frame = cap.read()
    #转换颜色空间BGR到HSV
    hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
    # #定义HSV中蓝色的范围
    lower_blue = np.array([100, 50, 50])
    upper_blue = np.array([124, 255, 255])
    # #定义HSV中红色的范围
    lower_red = np.array([156, 50, 50])
    upper_red = np.array([180, 255, 255])
    #定义HSV中绿色的范围
    lower_green = np.array([35, 50, 50])
    upper_green = np.array([77, 255, 255])
    #设置HSV的阈值使得只取蓝色
    mask_blue = cv.inRange(hsv, lower_blue, upper_blue)
    mask_red = cv.inRange(hsv, lower_red, upper_red)
    mask_green = cv.inRange(hsv, lower_green, upper_green)
    
    #将掩膜和图像逐像素相加
    res_blue = cv.bitwise_and(frame, frame, mask= mask_blue)
    res_red = cv.bitwise_and(frame, frame, mask= mask_red)
    res_green = cv.bitwise_and(frame, frame, mask= mask_green)
    res_blue_red = cv.add(res_blue,res_red)
    res = cv.add(res_blue_red,res_green)
    cv.imshow('frame',frame)
    cv.imshow('mask_blue',mask_blue)
    cv.imshow('mask_red',mask_red)
    cv.imshow('mask_green',mask_green)
    cv.imshow('res_blue',res_blue)
    cv.imshow('res_red',res_red)
    cv.imshow('res_green',res_green)
    cv.imshow('res',res)
    k = cv.waitKey(5)&0xFF
    if k == 27:
        break
cv.destroyAllWindows()

r_g_b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值