git:https://github.com/linyi0604/Computer-Vision

使用mog2算法进行背景分割

 # coding:utf-8

 import cv2

 # 获取摄像头对象
cap = cv2.VideoCapture(0)
# 背景分割器对象
mog = cv2.createBackgroundSubtractorMOG2() while True:
ret, frame = cap.read()
fgmask = mog.apply(frame)
cv2.imshow("frame", fgmask)
if cv2.waitKey(5) & 0xff == ord("q"):
break cap.release()
cv2.destroyAllWindows()

使用knn进行背景分割 顺便检测运动物体

 # coding:utf-8

 import cv2

 # 获取摄像头
camera = cv2.VideoCapture(0)
# 获取背景分割器对象
bs = cv2.createBackgroundSubtractorKNN(detectShadows=True) while True:
# 读取帧
ret, frame = camera.read()
# 获取前景
fgmask = bs.apply(frame)
# 对前景二值化
th = cv2.threshold(fgmask.copy(), 244, 255, cv2.THRESH_BINARY)[1]
# 膨胀运算
dilated = cv2.dilate(th, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)), iterations=2)
# 检测轮廓
image, contours, hier = cv2.findContours(dilated, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 将轮廓画在原图像上
for c in contours:
x, y, w, h = cv2.boundingRect(c)
cv2.rectangle(frame, (x, y), (x+w, y+h), (2555, 255, 0), 2)
# 显示前景
cv2.imshow("fgmask", fgmask)
# 显示二值化
cv2.imshow("thresh", th)
# 显示带有轮廓的原图
cv2.imshow("detection", frame)
if cv2.waitKey(5) & 0xff == ord("q"):
break cv2.destroyAllWindows()
camera.release()

python opencv3 背景分割 mog2 knn的更多相关文章

  1. 13 KNN背景分割器

    传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法.但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果. 现代的背景分割算法融入了机器学习的一些方法来提高分类 ...

  2. Opencv中KNN背景分割器

    背景分割器BackgroundSubtractor是专门用来视频分析的,会对视频中的每一帧进行"学习",比较,计算阴影,排除检测图像的阴影区域,按照时间推移的方法提高运动分析的结果 ...

  3. 用Python将一个列表分割成小列表

    用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

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

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

  5. python opencv3 基于ORB的特征检测和 BF暴力匹配 knn匹配 flann匹配

    git:https://github.com/linyi0604/Computer-Vision bf暴力匹配: # coding:utf-8 import cv2 """ ...

  6. 机器学习实战笔记(Python实现)-01-K近邻算法(KNN)

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  7. OpenCV3 SVM ANN Adaboost KNN 随机森林等机器学习方法对OCR分类

    转摘自http://www.cnblogs.com/denny402/p/5032839.html opencv3中的ml类与opencv2中发生了变化,下面列举opencv3的机器学习类方法实例: ...

  8. 基于Python的机器学习实战:KNN

    1.KNN原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应 ...

  9. 日志回滚:python(日志分割)

    日志回滚:python 什么是日志回滚? 答: 将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能.因此,有必要对日志文件按某种条件进行切分,要切分日 ...

随机推荐

  1. 1.phpcms 伪静态

    location / { if (!-f $request_filename){ rewrite (.*) /index.php; } rewrite ^/caipu-([-]+)-([-]+)-([ ...

  2. Django外键关系:一对一、一对多,多对多

    1. 一对多 model.py class UserTest(models.Model): name = models.CharField(max_length = 16 ) sex = models ...

  3. Python概念-禁锢术之__slots__

    之所以给它起名为禁锢术,并非空缺来风,下面我们来了解一下__slost__ __slost__:其实就是将类中的名称锁定,实例化对象,只可以赋值和调用,不可以删除名字和增加新的名字 代码示例:(实例化 ...

  4. Jetson TX1 安装Kinect驱动

    1.添加Universe源 $ sudo apt-add-repository universe $ sudo apt-get update 2.安装编译工具和依赖项 $ sudo apt-get i ...

  5. Inline函数使用注意事项

    Inline函数使用注意事项 1.在一个文件中定义的inline函数不能再另一个文件中使用 2.inline函数应简洁,只有少数几个语句. 3.在inline函数中不能有循环,if,switch语句. ...

  6. 20165227 实验三《敏捷开发与XP实践》实验报告

    2017-2018-4 20165227 实验三<敏捷开发与XP实践>实验报告 实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验要求 1.没有Linux基础的同学建议先学习&l ...

  7. VMware 增加硬盘ubuntu

    http://blog.csdn.net/Timsley/article/details/50742755

  8. mysql5.7.10 源码编译安装记录 (centos6.4)【转】

    一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...

  9. mycat读写分离与主从切换【转】

    什么是mycat,以及mycat的优点和特性本文不做赘述,本文继续本着实战的态度,来分享一些个人对mycat的基础功能实践.本文mycat的读写分离和主从切换的环境为mysql主从环境. 如何安装my ...

  10. python基础--类的经典类vs新式类

    经典类VS新式类区别 1)写法新式类class Person(object):#new style 经典类class Persion: #classical style 2)调用父类 新式写法用sup ...