基于OpenCV与Python3的视频物体颜色追踪实现

Owen
Owen
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用OpenCV和Python3实现视频中的物体颜色追踪。通过读取摄像头视频流,将图像从BGR转换至HSV色彩空间,设定特定的颜色阈值范围生成掩模,并利用位运算提取目标物体。该方法轻量高效,适用于实时视频处理场景,展示了OpenCV在图像处理领域的通用算法应用。

OpenCV简介

OpenCV

OpenCV是一款基于BSD开源许可发布的跨平台计算机视觉库,支持Linux、Windows、Android及Mac OS等多种操作系统。该库以轻量级和高效率著称,核心由一系列C函数及少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理与计算机视觉领域的多项通用算法。

OpenCV主要使用C++语言编写,其核心接口也为C++,但保留了大量的C语言接口。此外,该库还提供了Python、Java以及MATLAB/OCTAVE(版本2.5)等语言的接口,这些语言的API函数可通过在线文档获取。目前,OpenCV还支持C#、Ch、Ruby和GO等语言。

所有新开发的算法均使用C++接口实现。自2010年9月起,开始实现基于CUDA的GPU加速接口。

视频物体追踪代码实现


import numpy as np
import cv2
cap =cv2.VideoCapture(0)
while(1):
  #获取每一帧
  ret,frame = cap.read()
  #RGB转换到HSV
  hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
  #设定蓝色的阈值。确定要追踪的颜色为蓝色。
  lower_blue = np.array([100,50,50])
  upper_blue = np.array([120,255,255])
  #根据阈值构建掩模,构建黑白图
  #hsv:原图
  #lower_blue:图像中低于这个lower_blue的值,图像值变为0,即黑色
  #upper_blue:图像中高于这个upper_blue的值,图像值变为0
  #而在lower_blue~upper_blue之间的值变成255,即白色。
  mask = cv2.inRange(hsv,lower_blue,upper_blue)
  #对原图像和掩模进行位运算
  #蓝色覆盖白色区域,黑色不覆盖,实现了白色转化为要追踪的蓝色,也就是追踪效果。
  res = cv2.bitwise_and(frame,frame,mask=mask)
  #显示图像
  cv2.imshow('frame',frame)
  cv2.imshow('mask',mask)
  cv2.imshow('res',res)
  k = cv2.waitKey(5)& 0xFF
  if k==27:
    break
#关闭窗口
cv2.destroyAllWindows()

颜色阈值处理与结果展示

关于颜色阈值图的生成原理(参考百度相关资源)。

处理结果如下图所示。

总结

以上介绍了如何使用OpenCV结合Python3实现视频物体追踪,希望内容对您有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!如果您觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。