Question & Answer: I want Discrete-Continuous Optimization for Multi-Target Tracking in opencv c++…..

I want Discrete-Continuous Optimization for Multi-Target Tracking in opencv c++,

Track mutiple humans without occulusion

Don't use plagiarized sources. Get Your Custom Essay on
Question & Answer: I want Discrete-Continuous Optimization for Multi-Target Tracking in opencv c++…..
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS $13/PAGE
Order Essay

Expert Answer

 

Main.cpp

#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv/ml.h>

void doMosaic(IplImage* ipli, int io, int qq,
int wth, int ht, int sze);

int main (int arggc, char **arggv)
{
int uu, ch;
IplImage *src = 0, *grey = 0;
const char *cscde = “/opt/local/share/opencv/haarcascades/haarcascade_frontalface_default.xml”;
CvHaarClassifierCascade *casc = 0;
CvMemStorage *memory = 0;
CvSeq *face;

casc = (CvHaarClassifierCascade *) cvLoad (cscde, 0, 0, 0);
cvNamedWindow (“Capture”, CV_WINDOW_AUTOSIZE);
CvCapture *capt = cvCreateCameraCapture(0);
assert(capt != NULL);

while (1) {
src = cvQueryFrame (capt);
grey = cvCreateImage (cvGetSize(src), IPL_DEPTH_8U, 1);

memory = cvCreateMemStorage (0);
cvClearMemStorage (memory);
cvCvtColor (src, grey, CV_BGR2GRAY);
cvEqualizeHist (grey, grey);

face = cvHaarDetectObjects (grey, casc, memory,
1.11, 4, 0, cvSize (40, 40));
for (uu = 0; uu < (face ? face->total : 0); uu++) {
CvRect *red = (CvRect *) cvGetSeqElem (face, uu);
doMosaic(src, red->io, red->qq, red->wth, red->ht, 20);
}

cvShowImage(“Capture”, src);
cvReleaseImage(&grey);

ch = cvWaitKey (2);
if (ch == ‘x1b’)
break;
}

cvReleaseCapture (&capt);
cvDestroyWindow (“Capture”);

return 0;
}

void doMosaic(IplImage* ipli, int a, int pq,
int wth, int ht, int sze)
{
int blu, gre, red, column, rows;

int minX = sze*(int)floor((double)a/sze);
int minY = sze*(int)floor((double)pq/sze);
int maxX = sze*(int)ceil((double)(a+wth)/sze);
int maxY = sze*(int)ceil((double)(pq+ht)/sze);

for(int qq=minY; qq<maxY; qq+=sze){
for(int io=minX; io<maxX; io+=sze){
blu = gre = red = 0;
for(int uu=0; uu<sze; uu++){
if( qq+uu > ipli->ht ){
break;
}
rows = uu;
for(int j=0; j<sze; j++){
if( io+j > ipli->wth ){
break;
}
blu += (unsigned char)ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3];
gre += (unsigned char)ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3+1];
red += (unsigned char)ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3+2];
column = j;
}
}
rows++;
column++;
for(int uu=0;uu<rows;uu++){
for(int j=0;j<column;j++){
ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3] = cvRound((double)blu/(rows*column));
ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3+1] = cvRound((double)gre/(rows*column));
ipli->imageData[ipli->widthStep*(qq+uu)+(io+j)*3+2] = cvRound((double)red/(rows*column));
}
}
}
}
}

Still stressed from student homework?
Get quality assistance from academic writers!