1.运行环境

操作系统:win10 64位
python3.6
opencv3.4.5

2.方法

cv2.createBackgroundSubtractorMOG2()
cv2.createBackgroundSubtractorKNN()

BackgroundSubtractorMOG2是以高斯混合模型为基础的背景/前景分割算法。它是以2004年和2006年Z.Zivkovic的两篇文章为基础。这个算法的一个特点是它为每个像素选择一个合适的高斯分布。
这个方法有一个参数detectShadows,默认为True,他会检测并将影子标记出来,但是这样做会降低处理速度。影子会被标记成灰色。


import numpy as np
import cv2#BackgroundSubtractorMOG2
#opencv自带的一个视频
cap = cv2.VideoCapture('bg.avi')
#创建一个3*3的椭圆核
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))
#创建BackgroundSubtractorMOG2
fgbg = cv2.createBackgroundSubtractorMOG2()while(1):ret, frame = cap.read()fgmask = fgbg.apply(frame)#形态学开运算去噪点fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)#寻找视频中的轮廓im, contours, hierarchy = cv2.findContours(fgmask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)for c in contours:#计算各轮廓的周长perimeter = cv2.arcLength(c,True)if perimeter > 188:#找到一个直矩形(不会旋转)x,y,w,h = cv2.boundingRect(c)#画出这个矩形cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)    cv2.imshow('frame',frame)cv2.imshow('fgmask', fgmask)k = cv2.waitKey(30) & 0xffif k == 27:breakcap.release()
cv2.destroyAllWindows()

5.其他

注意如果要找到移动物体的轮廓,一定要处理噪点。直接用自带的算法,会影响结果。

用cv2.createBackgroundSubtractorKNN()的方法也能检测出移动的物体

6 椭圆形检测

https://blog.csdn.net/WZZ18191171661/article/details/91045219#Hough_109

调取python背景减法库:MOG2和KNN,非常好用相关推荐

  1. python加减法视频教程免费_一起学opencv-python三十八(视频分析:背景减法)

    首先要纠正一下上一讲的一些地方. 这里的移动其实并不仅仅是一个点的移动,那个中心线其实是不动的,动的是那些亮度值. 左边图是在(x,y)附近的像素点亮度值分布和二次曲线拟合情况,这是一维情况,二维应该 ...

  2. python opencv —— 背景提取(MOG、KNN)、识别与检测(Haar Cascade)

    注意 opencv 的坐标轴,x 轴向右,和 width 对应,y 轴向下,和 height 对应: 1. MOG2 与 KNN MOG:Mixture of Gaussian import cv2c ...

  3. 终于把python的所有库整理完毕了,现在一篇python库的字典诞生了

    库名称简介 添加小编学习群 832339352 即可自动获取大量python视频教程以及各类PDF! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文 ...

  4. 500个Python模块(库)的详细分类介绍

    常用模块 Chardet-------------字符编码探测器,可以自动检测文本.网页.xml的编码.colorama------------主要用来给文本添加各种颜色,并且非常简单易用.Prett ...

  5. python的opencv库使用gpu加速_Python跳一跳:使用Cython加速opencv像素级访问

    简要概述 网上已经有很多Python实现的跳一跳辅助程序,有基于模版匹配的,还有基于深度学习端到端的方法,都很厉害.但是没有一种算法和我自己想的一样:寻找一行上与背景不一样的像素,找出其最值,当最值连 ...

  6. Python所有的库

    文章目录 前言 库名称简介: 一.文件处理 1.库名称简介Mimetypes,Python标准库,映射文件名到MIME类型. 二.图像处理 1.库名称简介PIL(Python Image Librar ...

  7. python 所有的库整理

    Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式化的输出. ...

  8. Python所有的库都在这里了!!强烈建议收藏

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 随着大数据和人工智能的发展,Python也与多种科技深深绑定. 比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端 ...

  9. 进击的Python【第一章】:Python背景初探与Python基础(一)

    Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...

最新文章

  1. 如何为机器视觉系统选择合适的图像采集卡
  2. word2vec代码_TensorFlow2.0 代码实战专栏(四):Word2Vec (Word Embedding)
  3. python中常用的序列化模块_Python中的序列化和反序列化
  4. 黄聪:C#代码生成工具:文本模板初体验 Hello,World!
  5. KMP子串匹配算法(Knuth–Morris–Pratt algorithm)
  6. 新来乍到,谢谢大家捧场
  7. 手机 modem开发(19)---LTE注网总体流程
  8. CSS光标属性一览表
  9. C#之Enum中的Flag
  10. Python---基础-运算符int和range函数
  11. catia里画铰链_基于CATIA的汽车车门铰链设计
  12. 宏碁台式计算机u盘启动,Acer台式机怎么U盘启动
  13. linux下安装sg11,Linux安装SG11加密扩展组件教程
  14. Spring源码杂集
  15. Jmeter 压力测试 - Http2.0工具支持-【教学篇】
  16. 面试系列-1 大厂面试幂等性
  17. centos 下载文件很慢_百度云盘上传文件和下载文件慢的解决办法
  18. html图片十字形,CSS3 十字架
  19. 塑造成功性格的15种方法
  20. js简单的文本编辑器(所见即所得)

热门文章

  1. 编写 Linux shell 脚本 踩坑记录
  2. 大容量充电宝什么牌子最好?市面上最大容量充电宝推荐
  3. macd的python代码同花顺_超牛MACD(代编写程序化交易模型)-同花顺公式 -程序化交易(CXH99.COM)...
  4. 滴水逆向4月16日学习
  5. Win10 平台下, LightGBM GPU 版本的安装
  6. R语言 tidyverse 之数据处理:dplyr (中)
  7. VS--安装VS2010出现VC9.0 Runtime问题的解决方法
  8. 如何快速构建论文初稿
  9. 函数abs 和fabs
  10. 建模方法(十)-灰色预测模型GM(1,1)