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 somethingif(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