Python+OpenCV学习(16)---视频流背景剔除
2015-09-16 21:37
495 查看
利用python学习OpenCV,个人感觉比较方便。函数的形式与C++基本相同,所以切换过来还是比较好的,对于像我这种对python不太熟练的人,使用python的集成开发环境PyCharm进行学习,可以设置断点调试,有助于我这类初学者理解掌握。
在视频监控中,需要捕捉动态目标,那么就需要从视频流中剔除背景,P.KadewTraKuPong 和R.Bowden 在2001 年提出一种利用混合高斯模型对背景像素建模的方法,通过背景像素值持续时间的长短来剔除静止的背景,从而提取视频中的动态目标。
下面是利用python语言结合OpenCV进行背景剔除的代码:
测试视频是matlab toolbox vision 目录下的“viptraffic.avi",下面是视频中的截图:
方法二是以2004年和2006年Z.Zivkovic 的两篇文章为基础的。方法一(左)和方法二(右)的效果图如下:
从上述几帧图像可以看出,方法二的噪声很大,但目标的完整性好
在视频监控中,需要捕捉动态目标,那么就需要从视频流中剔除背景,P.KadewTraKuPong 和R.Bowden 在2001 年提出一种利用混合高斯模型对背景像素建模的方法,通过背景像素值持续时间的长短来剔除静止的背景,从而提取视频中的动态目标。
下面是利用python语言结合OpenCV进行背景剔除的代码:
# -*- coding:utf-8 -*- __author__ = 'Microcosm' import cv2 import numpy as np cap = cv2.VideoCapture("E:/python/Python Project/opencv_showimage/videos/viptraffic_long.avi") #cap = cv2.VideoCapture("E:/python/Python Project/opencv_showimage/videos/vipmen.avi") # 方法一: fgbg1 = cv2.BackgroundSubtractorMOG() # 方法二: fgbg2 = cv2.BackgroundSubtractorMOG2() # 方法三: 需要OpenCV3.0 #kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3)) #fgbg3 = cv2.BackgroundSubtractorGMG() while(1): ret, frame = cap.read() if ret: fg_mask1 = fgbg1.apply(frame) fg_mask2 = fgbg2.apply(frame) #fgmask3 = fgbg3.apply(frame) #fgmask3 = cv2.morphologyEx(fgmask3, cv2.MORPH_OPEN, kernel) result = np.hstack((fg_mask1, fg_mask2)) cv2.imshow('frame', result) k = cv2.waitKey(30) & 0xff if k == 27: break else: break cap.release() cv2.destroyAllWindows()
测试视频是matlab toolbox vision 目录下的“viptraffic.avi",下面是视频中的截图:
方法二是以2004年和2006年Z.Zivkovic 的两篇文章为基础的。方法一(左)和方法二(右)的效果图如下:
从上述几帧图像可以看出,方法二的噪声很大,但目标的完整性好
相关文章推荐
- wxpython初学者(四)之 事件驱动
- Python学习资料与博客推荐
- [Python] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例
- Python学习笔记 (一)
- Python个人代码库-beanstalkd操作类
- python读取excel的内容
- python之web模块学习-- urlparse
- python 读取git图片每一帧
- Python 获取时间戳
- Python 获取时间戳
- Python处理JSON(转)
- python常用模块
- Python+OpenCV学习(15)---Lucas Kanade 角点光流轨迹跟踪
- 【D2】Python一周入门
- Python 进行RSA私钥加密,公钥解密
- 升级Python导致yum报错
- python pexpect 启动、与子进程交互的例子--logstash
- Myeclipse + Python2.7.9,搭建Python开发环境
- Python改回之前版本的方法
- python:PyInstaller打包发布单个文件错误struct.error: argument for 's' must be a string解决