Before beginning make sure you have OpenCV >= 2.4 installed.
Copy the following demo code into main.cpp:
#include <iostream>
#include <cv.h>
#include <highgui.h>#include “package_bgs/FrameDifferenceBGS.h”
int main(int argc, char **argv)
{
CvCapture *capture = 0;
capture = cvCaptureFromCAM(0);if(!capture){
std::cerr << “Cannot initialize video!” << std::endl;
return -1;
}IBGS *bgs;
bgs = new FrameDifferenceBGS;IplImage *frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame) break;cv::Mat img_input(frame);
cv::imshow(“Input”, img_input);cv::Mat img_mask;
cv::Mat img_bkgmodel;// by default, it shows automatically the foreground mask image
bgs->process(img_input, img_mask, img_bkgmodel);//if(!img_mask.empty())
// cv::imshow(“Foreground”, img_mask);
// do somethingif(cvWaitKey(33) >= 0)
break;
}delete bgs;
cvDestroyAllWindows();
cvReleaseCapture(&capture);return 0;
}
Copy package_bgs directory from bgslibrary into directory containing main.cpp file and create a new folder named config in the same directory.
Compile
g++ -c `pkg-config opencv –cflags` main.cpp package_bgs/FrameDifferenceBGS.cpp
Check library paths
pi@raspberrypi ~ $ cat /etc/ld.so.conf.d/opencv.conf
/usr/local/lib/pi@raspberrypi ~ $ sudo ldconfig -v
Link
g++ -o out `pkg-config opencv –libs` main.o FrameDifferenceBGS.o
Execute
./out