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实现的文件夹清理程序分享
Nov 22 Python
用Python制作简单的钢琴程序的教程
Apr 01 Python
深入Python函数编程的一些特性
Apr 13 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 Python
Python中几种导入模块的方式总结
Apr 27 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
python 字符串和整数的转换方法
Jun 25 Python
python3.6数独问题的解决
Jan 21 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
基于Django统计博客文章阅读量
Oct 29 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
python中什么是面向对象
Jun 11 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基于文件存储实现缓存的方法
2015/07/20 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
js实现简单页面全屏
2019/09/17 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
讲解Python中的递归函数
2015/04/27 Python
利用python画一颗心的方法示例
2017/01/31 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Django框架视图介绍与使用详解
2019/07/18 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Python和Bash结合在一起的方法
2020/11/13 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
单身联谊活动方案
2014/01/29 职场文书
财务部总监岗位职责
2014/03/12 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python