50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)


Posted in Python onNovember 20, 2019

目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection)应用非常广泛,比如自动驾驶、视频监控、工业质检、医疗诊断等场景。

50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)

目标检测的根本任务就是将图片或者视频中感兴趣的目标提取出来,目标的识别可以基于颜色、纹理、形状。其中颜色属性运用十分广泛,也比较容易实现。下面就向大家分享一个我做的小实验———通过OpenCV的Python接口来实现从视频中进行颜色识别和跟踪。

下面就是我们完整的代码实现(已调试运行):

import numpy as np
import cv2
font = cv2.FONT_HERSHEY_SIMPLEX
lower_green = np.array([35, 110, 106]) # 绿色范围低阈值
upper_green = np.array([77, 255, 255]) # 绿色范围高阈值
lower_red = np.array([0, 127, 128]) # 红色范围低阈值
upper_red = np.array([10, 255, 255]) # 红色范围高阈值
#需要更多颜色,可以去百度一下HSV阈值!
# cap = cv2.VideoCapture('1.mp4') # 打开视频文件
cap = cv2.VideoCapture(0)#打开USB摄像头
if (cap.isOpened()): # 视频打开成功
 flag = 1
else:
 flag = 0
num = 0
if (flag):
 while (True):
 ret, frame = cap.read() # 读取一帧
 
 if ret == False: # 读取帧失败
  break
 hsv_img = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
 mask_green = cv2.inRange(hsv_img, lower_green, upper_green) # 根据颜色范围删选
 mask_red = cv2.inRange(hsv_img, lower_red, upper_red) 
 # 根据颜色范围删选
 mask_green = cv2.medianBlur(mask_green, 7) # 中值滤波
 mask_red = cv2.medianBlur(mask_red, 7) # 中值滤波
 mask = cv2.bitwise_or(mask_green, mask_red)
 mask_green, contours, hierarchy = cv2.findContours(mask_green, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
 mask_red, contours2, hierarchy2 = cv2.findContours(mask_red, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

 for cnt in contours:
  (x, y, w, h) = cv2.boundingRect(cnt)
  cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 255), 2)
  cv2.putText(frame, "Green", (x, y - 5), font, 0.7, (0, 255, 0), 2)

 for cnt2 in contours2:
  (x2, y2, w2, h2) = cv2.boundingRect(cnt2)
  cv2.rectangle(frame, (x2, y2), (x2 + w2, y2 + h2), (0, 255, 255), 2)
  cv2.putText(frame, "Red", (x2, y2 - 5), font, 0.7, (0, 0, 255), 2)
 num = num + 1
 cv2.imshow("dection", frame)
 cv2.imwrite("imgs/%d.jpg"%num, frame)
 if cv2.waitKey(20) & 0xFF == 27:
  break
cv2.waitKey(0)
cv2.destroyAllWindows()

如图所示,我们将会检测到红色区域

50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)

最终的效果图:

50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)

总结

以上所述是小编给大家介绍的50行Python代码实现视频中物体颜色识别和跟踪,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Django中使用locals()函数的技巧
Jul 16 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
python中import与from方法总结(推荐)
Mar 21 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
Flask中endpoint的理解(小结)
Dec 11 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
python如何写try语句
Jul 14 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python天气语音播报小助手
Sep 25 Python
python中必要的名词解释
Nov 20 #Python
python做接口测试的必要性
Nov 20 #Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 #Python
Python脚本操作Excel实现批量替换功能
Nov 20 #Python
详解Python中的format格式化函数的使用方法
Nov 20 #Python
Python数据分析pandas模块用法实例详解
Nov 20 #Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 #Python
You might like
php 安全过滤函数代码
2011/05/07 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python执行子进程实现进程间通信的方法
2015/06/02 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python实现简单http服务器功能
2018/09/17 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Python读取stdin方法实例
2019/05/24 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
Django通过json格式收集主机信息
2020/05/29 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
navabi英国:设计师大码女装
2019/06/25 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
物流专业求职计划书
2014/01/10 职场文书
集团薪酬管理制度
2014/01/13 职场文书
三年级语文教学反思
2014/02/01 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
个人工作保证书
2015/02/28 职场文书
捐款通知怎么写
2015/04/24 职场文书
保护校园环境倡议书
2015/04/28 职场文书
学术会议领导致辞
2015/07/29 职场文书
安全生产奖惩制度
2015/08/06 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技