介紹
背景減除,官網(wǎng)是這樣介紹的。
背景減法(BS)是通過(guò)使用靜態(tài)相機(jī)來(lái)生成前景蒙版(即,包含屬于場(chǎng)景中的運(yùn)動(dòng)對(duì)象的像素的二進(jìn)制圖像)的通用且廣泛使用的技術(shù)。
顧名思義,BS計(jì)算前景蒙版,在當(dāng)前幀和背景模型之間執(zhí)行減法運(yùn)算,其中包含場(chǎng)景的靜態(tài)部分,或者更一般而言,考慮到所觀察場(chǎng)景的特征,可以視為背景的所有內(nèi)容。
其實(shí)不難理解,我們建立了背景模型,那么前景就很容易分離出來(lái)了。當(dāng)然,這個(gè)方法使用場(chǎng)景一般上是靜態(tài)的背景場(chǎng)景。
后臺(tái)建模包括兩個(gè)主要步驟,后臺(tái)初始化和后臺(tái)更新,背景減除在OpenCV中的是cv::BackgroundSubtractor類(lèi),下面是例子:
官方例子
#include
#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
const char* params
= "{ help h | | Print usage }"
"{ input | vtest.avi | Path to a video or a sequence of image }"
"{ algo | MOG2 | Background subtraction method (KNN, MOG2) }";
int main(int argc, char* argv[])
{
CommandLineParser parser(argc, argv, params);
parser.about( "This program shows how to use background subtraction methods provided by "
" OpenCV. You can process both videos and images.\\n" );
if (parser.has("help"))
{
//print help information
parser.printMessage();
}
//create Background Subtractor objects
Ptr
截圖:
簡(jiǎn)單分析
PtrpBackSub,創(chuàng)建背景減除的對(duì)象,然后createBackgroundSubtractorMOG2()或createBackgroundSubtractorKNN()用來(lái)選擇更新背景的算法,MOG2或者KNN。然后pBackSub->apply(frame, fgMask);用來(lái)更新背景模型。
總的來(lái)說(shuō)用起來(lái)是比較煎簡(jiǎn)單的。其實(shí)背景減除最簡(jiǎn)單的實(shí)現(xiàn),可以直接用當(dāng)前幀減去前一幀的圖像作為背景,這個(gè)辦法最簡(jiǎn)單粗暴。優(yōu)化的話(huà),我們就得對(duì)所有的幀差進(jìn)行建模,用來(lái)得到最優(yōu)的背景模型。
審核編輯:劉清
-
OpenCV
+關(guān)注
關(guān)注
29文章
623瀏覽量
41181 -
MOGPON
+關(guān)注
關(guān)注
0文章
2瀏覽量
5719 -
printf函數(shù)
+關(guān)注
關(guān)注
0文章
31瀏覽量
5871
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論