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之从格式化表达式到方法
Sep 28 Python
Python图算法实例分析
Aug 13 Python
python决策树之CART分类回归树详解
Dec 20 Python
python并发2之使用asyncio处理并发
Dec 21 Python
python日志logging模块使用方法分析
May 23 Python
python实发邮件实例详解
Nov 11 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python实现自动访问网页的例子
Feb 21 Python
python 实现图像快速替换某种颜色
Jun 04 Python
python和anaconda的区别
May 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
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
解决python opencv无法显示图片的问题
2018/10/28 Python
python的pstuil模块使用方法总结
2019/07/26 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
应届毕业生求职信
2013/11/30 职场文书
满月酒答谢词
2014/01/14 职场文书
国税会议欢迎词
2014/01/16 职场文书
中学家长会邀请函
2014/01/17 职场文书
入党申请自荐书范文
2014/02/11 职场文书
年级组长自我鉴定
2014/02/22 职场文书
老干部工作汇报材料
2014/10/28 职场文书
运动会开幕词
2015/01/28 职场文书
铁人观后感
2015/06/16 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
box-shadow单边阴影的实现
2023/05/21 HTML / CSS