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配置文件解析模块ConfigParser使用实例
Apr 13 Python
python实现RSA加密(解密)算法
Feb 17 Python
Python卸载模块的方法汇总
Jun 07 Python
Python中异常重试的解决方案详解
May 05 Python
由面试题加深对Django的认识理解
Jul 19 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python实现AI换脸功能
Apr 10 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Python离线安装各种库及pip的方法
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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
PHP解析RSS的方法
2015/03/05 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
vue 组件使用中的一些细节点
2018/04/25 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
C#笔试题
2015/07/14 面试题
九年级数学教学反思
2014/02/02 职场文书
副总经理岗位职责
2014/03/16 职场文书
销售提升方案
2014/06/07 职场文书
就业协议书范本
2014/10/08 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python