OpenCV之背景減除

2021-10-10 00:14:27 字數 1315 閱讀 4444

背景減除,官網是這樣介紹的。

背景減法(bs)是通過使用靜態相機來生成前景蒙版(即,包含屬於場景中的運動物件的畫素的二進位制影象)的通用且廣泛使用的技術。

顧名思義,bs計算前景蒙版,在當前幀和背景模型之間執行減法運算,其中包含場景的靜態部分,或者更一般而言,考慮到所觀察場景的特徵,可以視為背景的所有內容。

其實不難理解,我們建立了背景模型,那麼前景就很容易分離出來了。當然,這個方法使用場景一般上是靜態的背景場景。

後台建模包括兩個主要步驟,後台初始化和後台更新,背景減除在opencv中的是cv::backgroundsubtractor類,下面是例子:

#include

#include

#include

#include

#include

#include

#include

using namespace cv;

using namespace std;

const

char

* params

="""""";

intmain

(int argc,

char

* ar**)

//create background subtractor objects

ptr pbacksub;

if(parser.get

("algo")==

"mog2"

) pbacksub =

createbackgroundsubtractormog2()

;else

pbacksub =

createbackgroundsubtractorknn()

; videocapture capture

( samples:

:findfile

( parser.get

("input"))

);if(

!capture.

isopened()

) mat frame, fgmask;

while

(true)

return0;

}

截圖:

總的來說用起來是比較煎簡單的。其實背景減除最簡單的實現,可以直接用當前幀減去前一幀的影象作為背景,這個辦法最簡單粗暴。優化的話,我們就得對所有的幀差進行建模,用來得到最優的背景模型。

運動目標檢測OpenCV背景減除法

背景減除法 1.gmm mog2演算法,高斯混合模型分離演算法,它為每個畫素選擇適當數量的高斯分布 函式 cv2.createbackgroundsubtractormog2 int history 500,double varthread 16,bool detectshadows true 2....

OpenCV基於背景減除實現行人計數

目錄 本文將使用opencv c 對 中的 量進行統計。原圖如圖所示。本案例的需求是想要統計畫麵中的 量。畫面中走動的行人可以看作是前景,那麼我們就需要將前景 背景分割出來。我們可以使用opencv提供的backgroundsubtractormog2 高斯混合模型,將行人從畫面中分割出來,然後提取...

背景減除 提取前景

2 backgroundsubtractormog2 這個也是以高斯混合模型為基礎的背景 前景分割演算法。它是以 2004 年和 2006 年 z.zivkovic 的兩篇文章為基礎的。這個演算法的乙個特點是它為每乙個畫素選擇乙個合適數目的高斯分布。上乙個方法中我們使用是 k 高斯分布 這樣就會對由...