#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/video.hpp>
#include <opencv2/video/background_segm.hpp>
#include <opencv2\opencv.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\objdetect\objdetect.hpp>
#include <opencv2\imgproc\types_c.h>
#include <opencv2\objdetect\objdetect_c.h>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat frame;
Mat foreground;
VideoCapture capture("bike.avi");
if (!capture.isOpened())
{
return 0;
}
namedWindow("Extracted Foreground");
namedWindow("Source Video");
// 混合高斯物體
BackgroundSubtractorMOG 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);
imshow("Source Video", frame);
if (waitKey(10) == 27)
{
stop = true;
}
}
}
我找到BackgroundSubtractorMOG在opencv2/video/background_segm.hpp內
但是還是
1> MOGExtractForeground.cpp
1>MOGExtractForeground.cpp(58): error C2065: “BackgroundSubtractorMOG”: 未宣告的識別符號
1>MOGExtractForeground.cpp(58): error C2146: 語法錯誤: 缺少“;”(在識別符號“mog”的前面)
1>MOGExtractForeground.cpp(58): error C2065: “mog”: 未宣告的識別符號
1>MOGExtractForeground.cpp(67): error C3861: “mog”: 找不到識別符號
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
我是純新手,接觸opencv學習前景提取技術,希望大神為我解答,這段代碼是從博客上下的,用的就是混合高斯模型處理過的像素的前景提取。
uj5u.com熱心網友回復:
晚上人好少
uj5u.com熱心網友回復:
opencv3.0 使用,Ptr<BackgroundSubtractorMOG2> mog = createBackgroundSubtractorMOG2(); mog->apply(frame, foreground, 0.01)uj5u.com熱心網友回復:
多謝2樓
,在VS215+opencv3.1碰到這個問題,已解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/127719.html
標籤:基礎類
下一篇:new 記憶體不足 求助
