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 enumerate遍历数组示例应用
Sep 06 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
改进Django中的表单的简单方法
Jul 17 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
在python中求分布函数相关的包实例
Apr 15 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 Python
Python第三方库安装缓慢的解决方法
Feb 06 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
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
详解Python中的Cookie模块使用
2015/07/06 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
应届生英语教师求职信
2013/11/05 职场文书
高中生班主任评语
2014/04/25 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python