opencv 2.4.7 的混合高斯算法 BackgroundSubtractorMOG问题

视频处理是对于前景的提取,混合高斯算法的调用是在cv空间域名中但是在opencv2.4.7中提示直接调用发生错误:

提示cv中没有BackgroundSubtractorMOG这个成员;

我在网上查了一下分析说:2.4.7 使用时无法检测到主页中的例子。在只有我又将头文件加上,发现只要加上:

#include <cvaux.h>就可以调用BackgroundSubtractorMOG这个成员;

附上代码:

 1 #include<cv.h>
 2 #include<highgui.h>
 3 #include <cvaux.h>
 4
 5 int main()
 6 {
 7     //打开视频文件
 8     cv::VideoCapture capture("D:\\1\\1.mp4");
 9     //检查视频是否成功打开
10     if(!capture.isOpened())
11         return 0;
12     //当前视频帧
13     cv::Mat frame;
14     //前景图像
15     cv::Mat foreground;
16     cv::namedWindow("Extracted f");
17     //使用默认参数的Mixture of Gaussian对象
18     cv::BackgroundSubtractorMOG mog;
19     bool stop(false);
20     //遍历每一帧
21     while(!stop){
22         //读取下一帧
23         if(!capture.read(frame))
24             break;
25         //更新背景并返回前景
26         mog(frame,foreground,0.01);
27         //对图像取反
28         cv::threshold(foreground, foreground, 128, 255, cv::THRESH_BINARY_INV);
29         //显示前景
30         cv::imshow("Extracted f",foreground);
31         //引入延迟;月可以通过按键Esc结束视频
32         if(cv::waitKey(10)>=0)
33             stop = true;
34     }
35 }

总结:还是将常用的头文件都写上,以免出现这种没必要的错误!!

  1. #include <cv.h>
  2. #include <cxcore.h>
  3. #include <highgui.h>
  4. #include <cvaux.h>
  5. #include <iostream>
  6. #include <string>
时间: 2024-08-05 15:25:24

opencv 2.4.7 的混合高斯算法 BackgroundSubtractorMOG问题的相关文章

混合高斯模型(Mixtures of Gaussians)和EM算法

混合高斯模型(Mixtures of Gaussians)和EM算法 主要内容: 1. 概率论预备知识 2. 单高斯模型 3. 混合高斯模型 4. EM算法 5. K-means聚类算法 一.概率论预备知识 1. 数学期望/均值.方差/标准差 设离散型随机变量X的分布律为 则称为X的数学期望或均值 设连续型随机变量X的概率密度函数(pdf)为 则其数学期望定义为: 随机变量X的方差: 随机变量X的标准差: 2. 正态分布.协方差 正态分布: 概率密度函数: 设(X,Y)为二维随机变量,若存在,则

EM算法与混合高斯模型

很早就想看看EM算法,这个算法在HMM(隐马尔科夫模型)得到很好的应用.这个算法公式太多就手写了这部分主体部分. 好的参考博客:最大似然估计到EM,讲了具体例子通熟易懂. JerryLead博客很不错 混合高斯模型算法

【转载】混合高斯模型(Mixtures of Gaussians)和EM算法

混合高斯模型(Mixtures of Gaussians)和EM算法 这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示.与k-means的硬指定不同,我们首先认为是满足一定的概率分布的,这里我们认为满足多项式分布,,其中,有k个值{1,…,k}可以选取.而且我们认为在给定后,满足多值高斯分布,即.由此可以得到联合分布. 整个模型简单描述为对于每个

OpenCV运动目标检测——帧间差,混合高斯模型方法

一.简单的帧间差方法 帧差法是在连续的图像序列中两个或三个相邻帧间采用基于像素的时间差分并且闽值化来提取图像中的运动区域. 代码: int _tmain(int argc, _TCHAR* argv[]) { VideoCapture capture("bike.avi"); if(!capture.isOpened()) return -1; double rate = capture.get(CV_CAP_PROP_FPS); int delay = 1000/rate; Mat

混合高斯模型算法(转)

下面介绍一下几种典型的机器算法 首先第一种是高斯混合模型算法: 高斯模型有单高斯模型(SGM)和混合高斯模型(GMM)两种. (1)单高斯模型: 为简单起见,阈值t的选取一般靠经验值来设定.通常意义下,我们一般取t=0.7-0.75之间. 二维情况如下所示: (2)混合高斯模型: 对于(b)图所示的情况,很明显,单高斯模型是无法解决的.为了解决这个问题,人们提出了高斯混合模型(GMM),顾名思义,就是数据可以看作是从数个高 斯分布中生成出来的.虽然我们可以用不同的分布来随意地构造 XX Mixt

机器学习3_EM算法与混合高斯模型

①EM算法: http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html 李航 <统计学习方法>9.1节 ②混合高斯模型(GMM): http://blog.pluskid.org/?p=39  (前面片段+后面matlab代码+conv的解释) http://blog.pluskid.org/?p=81  (GMM模型精解:可用EM算法进行优化的证明) 李航 <统计学习方法>9.1节 原文地址:https://

运动目标检测_混合高斯背景建模

1.混合高斯背景建模理论 混合高斯背景建模是基于像素样本统计信息的背景表示方法,利用像素在较长时间内大量样本值的概率密度等统计信息(如模式数量.每个模式的均值和标准差)表示背景,然后使用统计差分(如3σ原则)进行目标像素判断,可以对复杂动态背景进行建模,计算量较大. 在混合高斯背景模型中,认为像素之间的颜色信息互不相关,对各像素点的处理都是相互独立的.对于视频图像中的每一个像素点,其值在序列图像中的变化可看作是不断产生像素值的随机过程,即用高斯分布来描述每个像素点的颜色呈现规律{单模态(单峰),

斯坦福ML公开课笔记13A——混合高斯模型、混合贝叶斯模型

本文对应公开课的第13个视频,这个视频仍然和EM算法非常相关,第12个视频讲解了EM算法的基础,本视频则是在讲EM算法的应用.本视频的主要内容包括混合高斯模型(Mixture of Gaussian, MoG)的EM推导.混合贝叶斯模型(Mixture of Naive Bayes,MoNB)的EM推导.因子分析模型(Factor Analysis Model)及其EM求解.由于本章内容较多,故而分为AB两篇,本篇介绍至混合模型的问题. 很久没有写这个系列的笔记了,各种事情加各种懒导致的.虽然慢

混合高斯背景建模

在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要.而建模正是背景目标提取的一个重要环节. 前景是指在假设背景为静止的情况下,任何有意义的运动物体即为前景. 运动物体检测的问题主要分为两类,摄像机固定和摄像机运动.对于摄像机运动的运动物体检测问题,比较著名的解决方案是光流法,通过求解偏微分方程求的图像序列的光流场,从而预测摄像机的运动状态.对于摄像机固定的情形,当然也可以用光流法,但是由于光流法的复杂性,往往难以实时的计算.而混合高斯背景建模适合于在摄像机固定的情况下从图像序列中分离出背