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写入中英文字符串到文件的方法
May 06 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python制作爬虫采集小说
Oct 25 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
Python配置文件处理的方法教程
Aug 29 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
如何利用pycharm进行代码更新比较
Nov 04 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
解析zend Framework如何自动加载类
2013/06/28 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
js 方法实现返回多个数据的代码
2009/04/30 Javascript
学习ExtJS form布局
2009/10/08 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
探究Python中isalnum()方法的使用
2015/05/18 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python内置加密模块用法解析
2019/11/25 Python
Python实现对adb命令封装
2020/03/06 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
外企财务年会演讲稿
2014/01/03 职场文书
创先争优宣传标语
2014/10/08 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
PYTHON InceptionV3模型的复现详解
2022/05/06 Python
linux目录管理方法介绍
2022/06/01 Servers