Ask Your Question

Revision history [back]

accessing elements in vector of vector of points

I tried people counting using HOG descriptor. When the program is compiled, the last part of the program for people counting shows errors.

HOGDescriptor hog; hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); namedWindow("people detector", 1); int required,incoming,outgoing; required=0; incoming=0; outgoing=0; for(;;) { vector<rect> found, found_filtered; double t = (double)getTickCount(); hog.detectMultiScale(img, found, 0, Size(8,8), Size(32,32), 1.05, 2); t = (double)getTickCount() - t; printf("tdetection time = %gms\n", t*1000./cv::getTickFrequency()); size_t i, j; for( i = 0; i < found.size(); i++ ) { Rect r = found[i]; for( j = 0; j < found.size(); j++ ) if( j != i && (r & found[j]) == r) break; if( j == found.size() ) found_filtered.push_back(r); } Point pt,ptretrieve;

vector<vector<point>>rectcount; for(i=0;i<found_filtered.size();i++) {="" rect="" r="found_filtered[i];" pt.x="r.tl().x+(r.br().x-r.tl().x)/2;" pt.y="r.tl().y+(r.br().y-r.tl().y)/2;" for(ii="0;ii&lt;found_filtered.size();ii++)" {="" ptretrieve="rectcount[ii].back;" if(pt.x-ptretrieve.x&lt;="3&amp;&amp;pt.y-ptretrieve.y&lt;=3)" {="" required="ii;" break;="" }="" }="" ptretrieve="rectcount[required].back;" if(pt.x="=150&amp;&amp;ptretrieve.x==151)" incoming++;="" if(pt.x="=150&amp;&amp;ptretrieve.x==149)" ougoing++;="" rectcount[required].push_back(pt);="" }<="" p="">

accessing elements in vector of vector of points

I tried people counting using HOG descriptor. When the program is compiled, the last part of the program for people counting shows errors.

HOGDescriptor hog; hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); namedWindow("people detector", 1); int required,incoming,outgoing; required=0; incoming=0; outgoing=0; for(;;) { vector<rect> found, found_filtered; double t = (double)getTickCount(); hog.detectMultiScale(img, found, 0, Size(8,8), Size(32,32), 1.05, 2); t = (double)getTickCount() - t; printf("tdetection time = %gms\n", t*1000./cv::getTickFrequency()); size_t i, j; for( i = 0; i < found.size(); i++ ) { Rect r = found[i]; for( j = 0; j < found.size(); j++ ) if( j != i && (r & found[j]) == r) break; if( j == found.size() ) found_filtered.push_back(r); } Point pt,ptretrieve;

vector<vector<point>>rectcount; for(i=0;i<found_filtered.size();i++) {="" rect="" r="found_filtered[i];" pt.x="r.tl().x+(r.br().x-r.tl().x)/2;" pt.y="r.tl().y+(r.br().y-r.tl().y)/2;" for(ii="0;ii&lt;found_filtered.size();ii++)" {="" ptretrieve="rectcount[ii].back;" if(pt.x-ptretrieve.x&lt;="3&amp;&amp;pt.y-ptretrieve.y&lt;=3)" {="" required="ii;" break;="" }="" }="" ptretrieve="rectcount[required].back;" if(pt.x="=150&amp;&amp;ptretrieve.x==151)" incoming++;="" if(pt.x="=150&amp;&amp;ptretrieve.x==149)" ougoing++;="" rectcount[required].push_back(pt);="" }<="" p="">

click to hide/show revision 3
No.3 Revision

updated 2016-03-09 01:19:47 -0600

berak gravatar image

accessing elements in vector of vector of points

I tried people counting using HOG descriptor. When the program is compiled, the last part of the program for people counting shows errors.

 HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
namedWindow("people detector", 1);
int required,incoming,outgoing;
required=0;
incoming=0;
outgoing=0;
for(;;)
{
vector<rect> vector<Rect> found, found_filtered;
double t = (double)getTickCount();
hog.detectMultiScale(img, found, 0, Size(8,8), Size(32,32), 1.05, 2);
t = (double)getTickCount() - t;
printf("tdetection time = %gms\n", t*1000./cv::getTickFrequency());
size_t i, j;
for( i = 0; i < found.size(); i++ )
{
Rect r = found[i];
for( j = 0; j < found.size(); j++ )
if( j != i && (r & found[j]) == r)
break;
if( j == found.size() )
found_filtered.push_back(r);
}
Point pt,ptretrieve;

vector<vector<point>>rectcount; for(i=0;i<found_filtered.size();i++) {="" rect="" r="found_filtered[i];" pt.x="r.tl().x+(r.br().x-r.tl().x)/2;" pt.y="r.tl().y+(r.br().y-r.tl().y)/2;" for(ii="0;ii&lt;found_filtered.size();ii++)" {="" ptretrieve="rectcount[ii].back;" if(pt.x-ptretrieve.x&lt;="3&amp;&amp;pt.y-ptretrieve.y&lt;=3)" {="" required="ii;" break;="" }="" }="" ptretrieve="rectcount[required].back;" if(pt.x="=150&amp;&amp;ptretrieve.x==151)" incoming++;="" if(pt.x="=150&amp;&amp;ptretrieve.x==149)" ougoing++;="" rectcount[required].push_back(pt);="" }<="" p="">

pt,ptretrieve; vector<vector<Point>>rectcount; for(i=0;i<found_filtered.size();i++) { Rect r = found_filtered[i]; pt.x=r.tl().x+(r.br().x-r.tl().x)/2; pt.y=r.tl().y+(r.br().y-r.tl().y)/2; for(ii=0;ii<found_filtered.size();ii++) { ptretrieve=rectcount[ii].back; if(pt.x-ptretrieve.x<=3&&pt.y-ptretrieve.y<=3) { required=ii; break; } } ptretrieve=rectcount[required].back; if(pt.x==150&&ptretrieve.x==151) incoming++; if(pt.x==150&&ptretrieve.x==149) ougoing++; rectcount[required].push_back(pt); }