cvtColor(img,gray,CV_BGR2GRAY);
resize(gray,smallImg,smallImg.size(),0,0,INTER_LINEAR);
equalizeHist(smallImg,smallImg);
t=(double)cvGetTickCount();
cascade.detectMultiScale(smallImg,faces,
1.1,2,0
|CV_HAAR_FIND_BIGGEST_OECT
//|CV_HAAR_DO_ROUGH_SEARCH
//|CV_HAAR_SCALE_IMAGE
,
Size(30,30));
if(tryflip)
{
flip(smallImg,smallImg,1);
cascade.detectMultiScale(smallImg,faces2,
1.1,2,0
|CV_HAAR_FIND_BIGGEST_OECT
//|CV_HAAR_DO_ROUGH_SEARCH
//|CV_HAAR_SCALE_IMAGE
,
Size(30,30));
for(vector<Rect>::const_iteratorr=faces2.begin();r!=faces2.end();r++)
{
faces.push_back(Rect(smallImg.cols-r->x-r->width,r->y,r->width,r->height));
}
}
t=(double)cvGetTickCount()-t;
printf("detectiontime=%gms\n",t/((double)cvGetTickFrequency()*1000.));
if(draw)
{
for(vector<Rect>::const_iteratorr=faces.begin();r!=faces.end();r++,i++)
{
MatsmallImgROI;
vector<Rect>nestedObjects;
Pointcenter;
Scalarcolor=colors[i%8];
intradius;
doubleaspect_ratio=(double)r->width/r->height;
rectangle(img,cvPoint(cvRound(r->x*scale),cvRound(r->y*scale)),
cvPoint(cvRound((r->x+r->width-1)*scale),cvRound((r->y+r->height-1)*scale)),
color,3,8,0);
if(nestedCascade.empty())
continue;
smallImgROI=smallImg(*r);
nestedCascade.detectMultiScale(smallImgROI,nestedObjects,
1.1,2,0
|CV_HAAR_FIND_BIGGEST_OECT
//|CV_HAAR_DO_ROUGH_SEARCH
//|CV_HAAR_DO_CANNY_PRUNING
//|CV_HAAR_SCALE_IMAGE
,
Size(30,30));
//draweyes
//for(vector<Rect>::const_iteratornr=nestedObjects.begin();nr!=nestedObjects.end();nr++)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22609-11.html
会趁机坐大滴
总在说数量
人不犯我我不犯人