ich arbeite an einem Projekt mit OpenCV243, ich brauche den Vordergrund während eines Streams zu bekommen, mein Problem ist, dass ich den cv :: absdiff verwenden, um es nicht wirklich hilft, hier ist mein Code und das Ergebnis.Hintergrund und Vordergrund in 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;
}
, wie Sie die Subtraktion der Arbeit sehen können, aber was ich will zu bekommen ist nur die Werte, dass beispielsweise geändert, wenn ein Pixel im Hintergrund mit haben [130130130] und die gleiche Pixel hat [200200200] im Rahmen möchte ich genau die letzten Werte erhalten und nicht [70,70,70] habe ich dieses Tutorial schon gesehen: http://mateuszstankiewicz.eu/?p=189 aber ich kann nicht den Code verstehen, und ich habe Probleme Einstellung cv :: BackgroundSubtractorMOG2 mit meiner OpenCV Version
Dank im Voraus für Sie helfen