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基于xml parse实现解析cdatasection数据
Sep 30 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
Python中的单继承与多继承实例分析
May 10 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
python将字符串转换成json的方法小结
Jul 09 Python
linux中如何使用python3获取ip地址
Jul 15 Python
详解Django定时任务模块设计与实践
Jul 24 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 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
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php中JSON的使用与转换
2015/01/14 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
JS实现留言板功能
2017/06/17 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
Python迭代器和生成器介绍
2015/03/06 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
django用户登录和注销的实现方法
2018/07/16 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
应用英语专业自荐信
2014/01/26 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
模范教师事迹材料
2014/12/16 职场文书
先进人物事迹材料
2014/12/29 职场文书
员工升职自荐信
2015/03/27 职场文书
创业计划书详解
2019/07/19 职场文书
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL