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根据出生日期返回年龄的方法
Mar 26 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
python实现数据库跨服务器迁移
Apr 12 Python
详解python算法之冒泡排序
Mar 05 Python
用python做游戏的细节详解
Jun 25 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
python matplotlib包图像配色方案分享
Mar 14 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
剖析 PHP 中的输出缓冲
2006/12/21 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
python机器学习理论与实战(二)决策树
2018/01/19 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
django数据库自动重连的方法实例
2019/07/21 Python
python 三元运算符使用解析
2019/09/16 Python
python getpass实现密文实例详解
2019/09/24 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
学生实习介绍信
2014/01/15 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
微笑服务演讲稿
2014/05/13 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android