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中装饰器的一个妙用
Feb 08 Python
Python递归函数定义与用法示例
Jun 02 Python
kafka-python批量发送数据的实例
Dec 27 Python
Python多项式回归的实现方法
Mar 11 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python更新所有已安装包的操作
Feb 13 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
通过实例简单了解python yield使用方法
Aug 06 Python
用python对excel进行操作(读,写,修改)
Dec 25 Python
Python数据分析之绘图和可视化详解
Jun 02 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
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
javascript multibox 全选
2009/03/22 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Python实现一个简单的验证码程序
2017/11/03 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
Python 12306抢火车票脚本
2018/02/07 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python事件驱动event实现详解
2018/11/21 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
Python字符串三种格式化输出
2020/09/17 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
生产部统计员岗位职责
2014/01/05 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
科学发展观标语
2014/10/08 职场文书
2016年寒假见闻
2015/10/10 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript