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 相关文章推荐
实例讲解Python中函数的调用与定义
Mar 14 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
Python实现随机漫步功能
Jul 09 Python
python 字典中取值的两种方法小结
Aug 02 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
python实现年会抽奖程序
Jan 22 Python
Python pandas实现excel工作表合并功能详解
Aug 29 Python
python实现超市管理系统(后台管理)
Oct 25 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
浅谈Python中的继承
Jun 19 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常用函数的用法详解
2013/05/10 PHP
php常用Stream函数集介绍
2013/06/24 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
员工试用期自我鉴定范文
2014/09/15 职场文书
综治工作汇报材料
2014/10/27 职场文书
房产公证书
2015/01/23 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Python实现byte转integer
2021/06/03 Python
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers