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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
简单的通用表达式求10乘阶示例
Mar 03 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Python开发的HTTP库requests详解
Aug 29 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Python @property原理解析和用法实例
Feb 11 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 Python
python基础学习之递归函数知识总结
May 26 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
德劲1104的电路分析与改良
2021/03/01 无线电
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
django允许外部访问的实例讲解
2018/05/14 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
2014年安全员工作总结
2014/11/13 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
结婚典礼主持词
2015/06/29 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
Java 定时任务技术趋势简介
2022/05/04 Java/Android