Mėnesio archyvas: lapkričio 2014

bgslibrary naudojimas savoje programoje

Prieš pradedant sistemoje turi būti įdiegta OpenCV >= 2.4 versija.

Tarkime norima sukompiliuoti ir sulinkinti tokią pavyzdinę programą:

#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 something

if(cvWaitKey(33) >= 0)
break;
}

delete bgs;

cvDestroyAllWindows();
cvReleaseCapture(&capture);

return 0;
}

Šis kodas išsaugomas main.cpp faile, į tą patį katalogą iš bgslibrary nukopijuojamas package_bgs aplankalas ir sukuriamas config katalogas.

Kompiliavimas

g++ -c `pkg-config opencv --cflags` main.cpp package_bgs/FrameDifferenceBGS.cpp

Bibliotekų keliai

pi@raspberrypi ~ $ cat /etc/ld.so.conf.d/opencv.conf
/usr/local/lib/

pi@raspberrypi ~ $ sudo ldconfig -v

Linkinimas

g++ -o out `pkg-config opencv --libs` main.o FrameDifferenceBGS.o

Vykdymas

./out