您当前的位置: 首页 >  算法

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

目标追踪-背景差算法

qianbo_insist 发布时间:2021-06-28 21:34:47 ,浏览量:0

mog2 算法

MOG2算法,也是高斯混合模型分离算法,是MOG的改进,算法的重要特征是:为每个像素选择适当数量的高斯分布,可以更好地适应不同场景的照明变化等。高斯分布其实就是正态分布,(Normal distribution)。

1、混合高斯模型:

原理:将图像分为3-5个高斯模型,一个像素点来了,如果该像素点离任何一个高斯模型的距离大于其2倍的标准差,则为前景即运动物体,否则则是背景。

2、code

掌握其原理以后,下面直接用opencv来实现,这个只是应用而已。

#include 

using namespace cv;
using namespace std;

int main()
{
	VideoCapture capture("bike.avi");

	if (!capture.isOpened())
	{
		return 0;
	}

	namedWindow("Extracted Foreground");
	namedWindow("Source Video");
	// 混合高斯物体
	Mat frame, bg;
	Mat kernel = getStructuringElement(MORPH_RECT, Size(2, 2));

	Ptr mog2 = createBackgroundSubtractorMOG2();
	
	bool stop(false);
	while (!stop)
	{
		if (!capture.read(frame))
		{
			break;
		}
		imshow("Source Video", frame);
		mog2->apply(frame, bg);
		morphologyEx(bg, bg, MORPH_OPEN, kernel);

		threshold(bg, bg, 128, 255, THRESH_BINARY);
		imshow("Extracted Foreground", bg);
		// show foreground
		//imshow("Extracted Foreground", foreground);
		//imshow("Source Video", frame);
		if (waitKey(10) == 27)
		{
			stop = true;
		}
	}
}

原视频 原图 检测出的前景 前景

改进

可以做一些改进,读者可以提出,

关注
打赏
1663161521
查看更多评论
立即登录/注册

微信扫码登录

0.0367s