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实现从ftp服务器下载文件的方法
Apr 30 Python
python运行时间的几种方法
Jun 17 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
基于Python闭包及其作用域详解
Aug 28 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
详解django的serializer序列化model几种方法
Oct 16 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
Python应用领域和就业形势分析总结
May 14 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
python3 os进行嵌套操作的实例讲解
Nov 19 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自带方法验证邮箱是否存在
2016/02/01 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python实现两个文件合并功能
2018/04/01 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
django数据库自动重连的方法实例
2019/07/21 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
python exit出错原因整理
2020/08/31 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
公司企业表扬信
2014/01/11 职场文书
关爱残疾人标语
2014/06/25 职场文书
社区清明节活动总结
2014/07/04 职场文书
布达拉宫导游词
2015/02/02 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
Python利用capstone实现反汇编
2022/04/06 Python