专栏首页粽子的深度学习笔记OpenCV学习:物体跟踪

OpenCV学习:物体跟踪

HSV是一种将RGB色彩模型中的点在圆柱坐标系中的表示法。这种表示法试图做到比RGB基于笛卡尔坐标系的几何结构更加直观。HSV即色相、饱和度、明度(英语:Hue, Saturation, Value),又称HSB,其中B即英语:Brightness。[1]

在HSV颜色空间中,比在RGB颜色空间中更容易表示一种特定颜色,所以我们利用这一点可以更容易地提取带有某个特定颜色的物体。通过如下几步可以进行简单的物体跟踪

  • 从视频中获取每一帧图像
  • 将图像转换到 HSV 空间
  • 设置 HSV 阈值到蓝色范围

结果如下图所示:

                      图1                                                                                       图2

                        图3

import numpy as np
import cv2

#cv2.cvtColor(input_image ,flag) #其中 flag就是转换类型。
#BGR↔Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY。
#同样对于 BGR↔HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV。

#flags=[i for in dir(cv2) if i startswith('COLOR_')]
#print(flags)  #通过这两行命令得到所有可用flag
#注意:在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179],S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。
# 但是不同的软件使用的值可能不同。所以当你需要拿 OpenCV 的 HSV 值与其他软件的 HSV 值进行对比时,一定要记得归一化。

#HSV 色彩/色度/色相[0,179]   饱和度[0,255]   亮度[0,255]


#物体追踪
cap=cv2.VideoCapture(0)
while(1):
    #获取每一帧
    ret,frame=cap.read()
    
    #转换到HSV,HSV里面颜色区别更大
    hsv=cv2.cvtColor(frame,cv2.COLOR_RGB2HSV)
    #cv2.imshow('hsv',hsv)
    
    #设定蓝色的阈值
    lower_blue=np.array([11,43,46])
    upper_blue=np.array([25,255,255])
    #理论上蓝色H范围100-124,实际在11-25(橙)范围找到了蓝色物体,猜想是日光灯的原因。
    
    #根据阈值构建掩模
    mask=cv2.inRange(hsv,lower_blue,upper_blue)#保留阈值范围内,去除背景
    
    #对原图像和掩模进行位运算
    res=cv2.bitwise_and(frame,frame,mask=mask)#bitwise_and(src1, src2, dst=None, mask=None),矩阵1,矩阵2
    #掩模 相当于PCB制版里面的 底片
    
    #显示图像
    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k=cv2.waitKey(5)&0xFF
    if k ==27:
        break

cv2.destroyAllWindows()

说明:参考文章HSV颜色识别-HSV基本颜色分量范围,确定蓝色的HSV区间,结果发现并不能检测出想要的结果,最后不断调整区间在色相区间[11,25]内有较好结果,还不知道是哪里不准确,怀疑是实验室的灯光的原因,有了解的朋友可以留言。

Reference:

[1] HSL和HSV色彩空间. (2018, March 12). Retrieved from 维基百科, 自由的百科全书: https://zh.wikipedia.org/w/index.php?title=HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4&oldid=48639745

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【opencv】cv头文件

    需要调用到opencv的什么功能,就在代码头提前引用好对应的头文件。 所有的头文件都可以在include/opencv2/文件夹找到。

    JNingWei
  • ROS实现无人机目标跟踪/物体跟随/循迹

    小黑鸭
  • CV学习笔记(八):光流法原理

    在之前的几篇关于OpenCV的文章中我集中介绍了OpenCV中比较常用的操作和函数.在我们基础的学习中,这些函数其实在图像进行预操作的过程中已经够用了.因此在之...

    云时之间
  • CV学习笔记(八):光流法原理

    在之前的几篇关于OpenCV的文章中我集中介绍了OpenCV中比较常用的操作和函数.在我们基础的学习中,这些函数其实在图像进行预操作的过程中已经够用了.因此在之...

    云时之间
  • OpenCV多目标跟踪与视频分析

    在视频监控与分析中,视频前后景分析、多目标检测、目标跟踪等算法需要协同工作,今天跟大家分享的开源库,给出了一个基于OpenCV的开源实现。供大家学习参考。

    CV君
  • 大伽带你入门OpenCV Python计算机视觉

    【OpenCV学堂】原创文章作者 贾志刚 推出 OpenCV Python系列视频教程,全套视频教程基于OpenCV Python语言API讲述,简单易学,内容...

    OpenCV学堂
  • OpenCV相关资料

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机...

    ccf19881030
  • 实践干货 | 自动化视觉跟踪

    在之前的某个教程里,我们探讨了如何控制Pan/Tilt Servo设备来安置一个PiCam(树莓派的相机)。这次,我们将使用你的设备来帮助相机自动地跟踪某种颜色...

    AI研习社
  • 自动化视觉跟踪

    在之前的某个教程里,我们探讨了如何控制Pan/Tilt Servo设备来安置一个PiCam(树莓派的相机)。这次,我们将使用你的设备来帮助相机自动地跟踪某种颜色...

    AI科技评论
  • OpenCV有多酷?

    在过去的几年里,深度学习已经成为人工智能领域发展最快的领域之一。它已经取得了显著的成果,特别是在计算机视觉领域。

    磐创AI
  • 用Jetson NANO规划一个统计访客数量的系统

    我们的想法是对视频流进行实时分析,如果满足一定的条件,就对客户进行计数。我们在几天内做了一个柜台,并使用人工智能算法计算路过的游客和那些停下来的人。在下面的文章...

    GPUS Lady
  • Python+OpenCV的环境安装

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机...

    菲宇
  • OpenCV与Open3D等开源视觉库的详细笔记

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    zhangrelay
  • 多目标追踪器:用OpenCV实现多目标追踪(C++/Python)

    在本文中,我们将谈到如何用 OpenCV 的多目标追踪API,通过使用 MultiTracker 类来实现。我们将分享用 C++ 和用 Python 实现的代码...

    AI研习社
  • 如何学习计算OpenCV

    如何学习OpenCV 一:学习OpenCV三个阶段 人工智能带火了计算机视觉的人才需求,作为计算机视觉应用开发框架OpenCV也越来越受到欢迎,市场需求大增,...

    OpenCV学堂
  • 历时七个月整理出来的《OpenCV4系统化学习路线图》

    OpenCV4.0发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集成OpenVINO与tensorflow、caffe等模型加速推断、...

    AI算法与图像处理
  • 历时七个月整理出来的《OpenCV4系统化学习路线图》

    OpenCV4.0发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集成OpenVINO与tensorflow、caffe等模型加速推断、...

    磐创AI
  • 【从零学习OpenCV 4】了解OpenCV的模块架构

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社...

    小白学视觉
  • 多模态深度学习:用深度学习的方式融合各种信息

    我们对世界的体验是多模态的 —— 我们看到物体,听到声音,感觉到质地,闻到气味,尝到味道。模态是指某件事发生或经历的方式,当一个研究问题包含多个模态时,它就具有...

    小白学视觉

扫码关注云+社区

领取腾讯云代金券