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 Tkinter简单布局实例教程
Sep 03 Python
Python方法的延迟加载的示例代码
Dec 18 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Python Pywavelet 小波阈值实例
Jan 09 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
Python常见数字运算操作实例小结
Mar 22 Python
Python秒算24点实现及原理详解
Jul 29 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python 实现两个线程交替执行
May 02 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
Python self用法详解
Nov 28 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执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
Angular.js实现动态加载组件详解
2017/05/28 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
在Python中关于中文编码问题的处理建议
2015/04/08 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
获取Django项目的全部url方法详解
2017/10/26 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
计算机工程学院个人求职信
2013/10/05 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
会计求职自荐信
2014/06/20 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书