python+opencv实现动态物体识别


Posted in Python onJanuary 09, 2018

注意:这种方法十分受光线变化影响

自己在家拿着手机瞎晃的成果图:

python+opencv实现动态物体识别python+opencv实现动态物体识别python+opencv实现动态物体识别python+opencv实现动态物体识别

源代码:

# -*- coding: utf-8 -*- 
""" 
Created on Wed Sep 27 15:47:54 2017 
 
@author: tina 
""" 
import cv2 
import numpy as np 
 
camera = cv2.VideoCapture(0) # 参数0表示第一个摄像头 
# 判断视频是否打开 
if (camera.isOpened()): 
  print('Open') 
else: 
  print('摄像头未打开') 
 
# 测试用,查看视频size 
size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)), 
    int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT))) 
print('size:'+repr(size)) 
 
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4)) 
kernel = np.ones((5, 5), np.uint8) 
background = None 
 
while True: 
  # 读取视频流 
  grabbed, frame_lwpCV = camera.read() 
  # 对帧进行预处理,先转灰度图,再进行高斯滤波。 
  # 用高斯滤波进行模糊处理,进行处理的原因:每个输入的视频都会因自然震动、光照变化或者摄像头本身等原因而产生噪声。对噪声进行平滑是为了避免在运动和跟踪时将其检测出来。 
  gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY) 
  gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0) 
 
  # 将第一帧设置为整个输入的背景 
  if background is None: 
    background = gray_lwpCV 
    continue 
  # 对于每个从背景之后读取的帧都会计算其与北京之间的差异,并得到一个差分图(different map)。 
  # 还需要应用阈值来得到一幅黑白图像,并通过下面代码来膨胀(dilate)图像,从而对孔(hole)和缺陷(imperfection)进行归一化处理 
  diff = cv2.absdiff(background, gray_lwpCV) 
  diff = cv2.threshold(diff, 148, 255, cv2.THRESH_BINARY)[1] # 二值化阈值处理 
  diff = cv2.dilate(diff, es, iterations=2) # 形态学膨胀 
  # 显示矩形框 
  image, contours, hierarchy = cv2.findContours(diff.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 该函数计算一幅图像中目标的轮廓 
  for c in contours: 
    if cv2.contourArea(c) < 1500: # 对于矩形区域,只显示大于给定阈值的轮廓,所以一些微小的变化不会显示。对于光照不变和噪声低的摄像头可不设定轮廓最小尺寸的阈值 
      continue 
    (x, y, w, h) = cv2.boundingRect(c) # 该函数计算矩形的边界框 
    cv2.rectangle(frame_lwpCV, (x, y), (x+w, y+h), (0, 255, 0), 2) 
 
  cv2.imshow('contours', frame_lwpCV) 
  cv2.imshow('dis', diff) 
 
  key = cv2.waitKey(1) & 0xFF 
  # 按'q'健退出循环 
  if key == ord('q'): 
    break 
# When everything done, release the capture 
camera.release() 
cv2.destroyAllWindows()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
Python中常见的数据类型小结
Aug 29 Python
OpenCV实现人脸识别
Apr 07 Python
Python获取指定字符前面的所有字符方法
May 02 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
Python绘制热力图示例
Sep 27 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
Python设计模式之门面模式简单示例
Jan 09 #Python
Python和Java进行DES加密和解密的实例
Jan 09 #Python
Python设计模式之中介模式简单示例
Jan 09 #Python
python+opencv实现动态物体追踪
Jan 09 #Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 #Python
Python设计模式之代理模式简单示例
Jan 09 #Python
基于python内置函数与匿名函数详解
Jan 09 #Python
You might like
判断浏览器的javascript版本的代码
2010/09/03 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
js中document.write的那点事
2014/12/12 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python元组常见操作示例
2019/02/19 Python
详解python和matlab的优势与区别
2019/06/28 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
django迁移文件migrations的实现
2020/03/31 Python
HTML文本属性&amp;颜色控制属性的实现
2019/12/17 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
德国自行车商店:Tretwerk
2019/06/21 全球购物
Servlet面试题库
2015/07/18 面试题
军训自我鉴定200字
2014/02/13 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2014年英语工作总结
2014/12/20 职场文书
七一活动主持词
2015/06/29 职场文书
社区服务理念口号
2015/12/25 职场文书