介紹
背景減除,官網是這樣介紹的。
背景減法(BS)是通過使用靜態相機來生成前景蒙版(即,包含屬于場景中的運動對象的像素的二進制圖像)的通用且廣泛使用的技術。
顧名思義,BS計算前景蒙版,在當前幀和背景模型之間執行減法運算,其中包含場景的靜態部分,或者更一般而言,考慮到所觀察場景的特征,可以視為背景的所有內容。
其實不難理解,我們建立了背景模型,那么前景就很容易分離出來了。當然,這個方法使用場景一般上是靜態的背景場景。
后臺建模包括兩個主要步驟,后臺初始化和后臺更新,背景減除在OpenCV中的是cv::BackgroundSubtractor類,下面是例子:
官方例子
#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
截圖:
簡單分析
PtrpBackSub,創建背景減除的對象,然后createBackgroundSubtractorMOG2()或createBackgroundSubtractorKNN()用來選擇更新背景的算法,MOG2或者KNN。然后pBackSub->apply(frame, fgMask);用來更新背景模型。
總的來說用起來是比較煎簡單的。其實背景減除最簡單的實現,可以直接用當前幀減去前一幀的圖像作為背景,這個辦法最簡單粗暴。優化的話,我們就得對所有的幀差進行建模,用來得到最優的背景模型。
審核編輯:劉清
-
OpenCV
+關注
關注
31文章
635瀏覽量
41347 -
MOGPON
+關注
關注
0文章
2瀏覽量
5740 -
printf函數
+關注
關注
0文章
31瀏覽量
5893
發布評論請先 登錄
相關推薦
評論