6
我正在使用OpenCV243的項目,我需要在流中獲取前景,我的問題是,我使用cv :: absdiff得到它並沒有真正的幫助,這裏是我的代碼和結果。在OpencV中的背景和前景
#include <iostream>
#include<opencv2\opencv.hpp>
#include<opencv2\calib3d\calib3d.hpp>
#include<opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
int main(){
cv::VideoCapture cap(0);
cv::Mat frame,frame1,frame2;
cap >> frame;
frame.copyTo(frame1);
cv::imwrite("background.jpeg",frame1);
int key = 0;
while(key!=27){
cap >> frame;
cv::absdiff(frame, frame1, frame2); // frame2 = frame -frame1
cv::imshow("foreground", frame2);
if(key=='c'){
//frame.copyTo(frame2);
cv::imwrite("foreground.jpeg", frame2);
key = 0;
}
cv::imshow("frame",frame);
key = cv::waitKey(10);
}
cap.release();
return 0;
}
你可以看到減法工作,但我想是的,改變,例如,如果在後臺與[130130130]和相同像素的像素僅值在框架[200200200]我想正是最後的值,而不是[70,70,70] 我已經看到了這個教程:http://mateuszstankiewicz.eu/?p=189 ,但我不明白的代碼,我有問題設置cv :: BackgroundSubtractorMOG2我OpenCV的版本
在此先感謝您的幫助