#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/imgproc/imgproc.hpp" #include using namespace cv; int main(int argc, char* argv[]) { CascadeClassifier cascade; cascade.load("cascade.xml"); cv::Mat img = cv::imread("imgUnseen.png",0); int i = 0; double t = 0; double xres=0.625, yres=0.625; vector faces; //equalizeHist(img, img); vector rejectLevels; vector levelWeights; t = (double)cvGetTickCount(); cascade.detectMultiScale( img, faces, rejectLevels, levelWeights, 1.1, 4, 0, Size(20/xres, 20/yres), Size(55/xres, 55/yres), true ); //sizes in mm t = (double)cvGetTickCount() - t; printf( "detection time = %g ms\n", t/((double)cvGetTickFrequency()*1000.) ); printf( "detected objects = %d\n", faces.size()); for( vector::const_iterator r = faces.begin(); r != faces.end(); r++, i++ ) { Point center; Scalar color = CV_RGB(255,255,255); int radius; center.x = cvRound((r->x + r->width*0.5)); center.y = cvRound((r->y + r->height*0.5)); radius = cvRound((r->width + r->height)*0.25); circle( img, center, radius, color, 3, 8, 0 ); } cv::imshow( "result", img ); cv::waitKey(0); return 0; }