基于OpenCV实战:对象跟踪

介绍

跟踪对象的基本思想是找到对象的轮廓,基于HSV颜色值。

轮廓:突出显示对象的图像片段。例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色突出显示,而其他则为黑色。白色部分称为轮廓。

在继续下面的操作之前,请在系统中安装OpenCV。打开命令提示符并键入

pip install opencv-python

步骤1:从相机读取数据

import cv2cam = cv2.VideoCapture(0) img = cam.read()[1] #_, img = cam.read()

参数0-用于主相机,例如在笔记本电脑网络摄像头中被视为主相机。1-代表中学,依此类推。

基于OpenCV实战:对象跟踪

步骤2:预处理框架

1、使用高斯滤波器对图像进行归一化。归一化图像可能会丢失许多小信息,但是我们需要归一化/模糊图像,以使我们的对象获得均等的颜色分布。

#cv2.gaussianBlur(source_image,Kernal_size,Border_width)

Blur_img = cv2.GaussianBlur(img,(11,11),0)

2、将图像转换为HSV颜色模型。

HSV = cv2.cvtColor(Blur_img, cv2.COLOR_BGR2HSV)

基于OpenCV实战:对象跟踪

步骤3:找到对应对象的HSV颜色

Obj_low = np.array([0,0,0]) # In my case (H,S,V)Obj_high = np.array([179,157,79])

步骤4:阈值化

在给定的HSV值范围内应用二进制阈值,黑白Obj_low和Obj_high。

MASK = cv2.inRange(HSV, Obj_low, Obj_high)

基于OpenCV实战:对象跟踪

#MASK2 = cv2.inRange(HSV,Obj2_low,Obj2_high)

如果尝试跟踪两个不同的对象,则需要创建2个不同的蒙版,并最终在两个蒙版上使用“按位与”运算符。

#mask = cv2.bitwise_and(mask1,mask2)

侵蚀和膨胀:侵蚀和膨胀填充阈值图像中的黑色和白色斑点。这样可使图像更清晰,平滑并突出主要对象。

MASK = cv2.erode(MASK1, None, iterations=2)MASK = cv2.dilate(MASK1, None, iterations =2)

基于OpenCV实战:对象跟踪

步骤5:在图像中查找轮廓

轮廓:突出显示对象的图像片段。例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色突出显示,而其他则为黑色。白色部分称为轮廓。

cnts = cv2.findContours(MASK1.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]if len(cnts)>0 :c = max(cnts, key = cv2.contourArea)

在上面给定的图像中,整个白色边界区域是轮廓。轮廓可能不止一个,但主要对象的面积将最大。所以选择轮廓最大。然后..

步骤6:在对象上绘制圆

得到主要物体的轮廓后,在轮廓上画一个圆。

((x,y), radius) = cv2.minEnclosingCircle(c)M = cv2.moments(c)center = (int(M[‘m10’]/ M[‘m00’]), int(M[‘m01’]/ M[‘m00’]) )cv2.circle(img, center, 5, (0,0,255), -1)cv2.circle(img, center, int(radius), (0,0,255), 2)

对象跟踪程序代码

import cv2import numpy as npcam = cv2.VideoCapture(0)Obj_low = np.array([0,0,0])Obj_high = np.array([179,157,79])while True:    img = cam.read()[1]    img = cv2.resize(img, (800,600) )    blur_img = cv2.GaussianBlur(img,(21,21),0)    HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)MASK1 = cv2.inRange(HSV, Obj_low, Obj_high)    MASK1 = cv2.erode(MASK1, None, iterations=2)    MASK1 = cv2.dilate(MASK1, None, iterations =2)    cnts = cv2.findContours(MASK1.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]    center = None    if len(cnts)>0 :        c = max(cnts, key = cv2.contourArea)        ((x,y), radius) = cv2.minEnclosingCircle(c)        M = cv2.moments(c)        center = (int(M['m10']/ M['m00']), int(M['m01']/ M['m00']) )        if radius>10:            cv2.circle(img, center, 5, (0,0,255), -1)            cv2.circle(img, center, int(radius), (0,0,255), 2)    cv2.imshow("my window",img)    k = cv2.waitKey(1)    if k==27:        breakcam.release()cv2.destroyAllWindows()

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/35652.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
小二小二加盟商
上一篇 2022年4月27日 00:14
下一篇 2022年4月27日 00:14

相关推荐

  • 基于 Openpose 实现人体动作识别

    作者|李秋键 出品|AI科技大本营(ID:rgznai100)引言伴随着计算机视觉的发展和在生活实践中的广泛应用,基于各种算法的行为检测和动作识别项目在实践中得到了越来越多的应用,并在相关领域得到了广泛的研究。在行为监…

    2022年4月27日 科技动态
    0449
  • iPhoneSE3正式发布!值不值得入手,先试试这12款高效软件

    最近苹果春季发布会,带来了新款iPhoneSE3,起售价居然要3499?不管值不值得入手,先试试下面这12款高效软件。01 万能小组件新的iPhone到手后,桌面小组件可玩性非常高,这款万能小组件工具很多人都在用,拥有50多…

    2022年4月27日 科技动态
    0192
  • 10个相见恨晚的宝藏App,知乎20W人热推,后悔没早点知道

    手机上除了每天常用的那几个软件外,你还知道有哪些好用的App吗?下面这10个相见恨晚的宝藏App,知乎20W人热推,后悔没早点知道。01 微商视频助手如果你从事的是微商、自媒体工作,那么这款工具一定不要错过,可以…

    2022年4月27日 科技动态
    0279
  • 机器学习:轻松掌握决策树模型

    决策树模型因为其特征预处理简单、易于集成学习、良好的拟合能力及解释性,是应用最广泛的机器学习模型之一。不同于线性模型【数学描述:f(W*X +b)】是通过数据样本学习各个特征的合适权重,加权后做出决策。决策树…

    2022年4月27日 科技动态
    0180
  • 花5分钟规范「代码注释」

    序 【注释】从技术上来说没有对错,理论上,你想怎么写就怎么写,你爱怎么写就怎么写! 但它确实也会对我们造成影响,尤其是在多人协同开发的系统中。杂乱的注释也会让你或你的队友头疼~ 所以,我们需要规范一下注…

    2022年5月13日
    0350
  • 小编分享网站如何开发。

    网站开发需要设计、编码、测试和维护。确定网站目标和功能;选择合适的技术栈;编写代码并部署到服务器;持续优化和更新。 (图片来源网络,侵删) 网站开发是一个复杂的过程,涉及到多个步骤和技能,以下是一些基…

    2024年6月30日
    05
  • 10款高质量Windows软件,知乎20w人推荐,究竟好在哪里?

    软件推荐(第31期):大部分人买了新电脑,第一时间都会装上很多软件,今天就给大家推荐10款高质量的Windows软件,知乎20w人推荐,究竟好在哪里?下面就来看看吧。Vol.1 智能修复老照片家里的老照片变得模糊不清、…

    2022年4月27日 科技动态
    0223
  • 10个小众的国产良心App,知乎20万人推荐,每一个都好用到爆

    我们每天都在用手机,你手机上有哪些实用的软件呢?今天就给大家分享10个小众的国产良心App,知乎20万人推荐,每一个都好用到爆。01 无痕去水印平时我们保存的图片、视频,大部分都带有水印,非常影响美观,借助这…

    2022年4月26日 科技动态
    0337

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息