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 list语法学习(带例子)
Nov 01 Python
详解Python中where()函数的用法
Mar 27 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
Python获取网段内ping通IP的方法
Jan 31 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
对Python _取log的几种方式小结
Jul 25 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python模块的制作方法实例分析
Dec 21 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
Python tkinter实现日期选择器
Feb 22 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简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php汉字转拼音的示例
2014/02/27 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP生成随机密码类分享
2014/06/25 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
深入研究React中setState源码
2017/11/17 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
python清除字符串里非数字字符的方法
2015/07/02 Python
Python中扩展包的安装方法详解
2017/06/14 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
国贸专业自荐信范文
2014/03/02 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL