opencv高斯背景建模

时间:2023-03-09 21:48:29
opencv高斯背景建模
#include <iostream>
#include <string> #include <opencv2/opencv.hpp> int main(int argc, char** argv)
{
std::string videoFile = "../test.avi"; cv::VideoCapture capture;
capture.open(videoFile); if (!capture.isOpened())
{
std::cout<<"read video failure"<<std::endl;
return -;
} cv::BackgroundSubtractorMOG2 mog; cv::Mat foreground;
cv::Mat background; cv::Mat frame;
long frameNo = ;
while (capture.read(frame))
{
++frameNo; std::cout<<frameNo<<std::endl; // 运动前景检测,并更新背景
mog(frame, foreground, 0.001); // 腐蚀
cv::erode(foreground, foreground, cv::Mat()); // 膨胀
cv::dilate(foreground, foreground, cv::Mat()); mog.getBackgroundImage(background); // 返回当前背景图像 cv::imshow("video", foreground);
cv::imshow("background", background); if (cv::waitKey() > )
{
break;
}
} return ;
}