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清除指定目录内所有文件中script的方法
Jun 30 Python
Python中的super()方法使用简介
Aug 14 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
用Python selenium实现淘宝抢单机器人
Jun 18 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 Python
Python3的进程和线程你了解吗
Mar 16 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
js实现动态时钟
2020/03/12 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
Python生成随机验证码的两种方法
2015/12/22 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
毕业生物理教师求职信
2013/10/17 职场文书
电子商务专员岗位职责
2013/12/11 职场文书
亲子拓展活动方案
2014/02/20 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
课外小组活动总结
2014/08/27 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
早恋主题班会
2015/08/14 职场文书
财务人员入职担保书
2015/09/22 职场文书
2015年度女工工作总结
2015/10/22 职场文书
个人业务学习心得体会
2016/01/25 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python