分享技術,記錄生活!
直接貼程式碼:
void GMM(){
// 開啟視訊檔案
VideoCapture capture("E:/LeftBag.mpg");
if (!capture.isOpened()){
cout << "Video open fail!" << endl;
return;
}
//當前視訊幀
Mat frame;
//前景的二值影象
Mat foreground;
namedWindow("Extracted Foreground");
//混合高斯模型類的物件, 全部採用預設引數
BackgroundSubtractorMOG2 mog;
bool stop(false);
//遍歷視訊中的所有幀
while (!stop){
//讀取下一幀
if (!capture.read(frame))
break;
// 更新背景並返回前景
mog(frame, foreground, 0.01);
// 學習速率
threshold(foreground, foreground, 128, 255, THRESH_BINARY_INV);
// 顯示前景
imshow("Extracted Foreground", foreground);
if (waitKey(10) >= 0)
stop = true;
}
}