1、读入图片
Mat image;
image=imread(" ");
2、窗户命名
namedWindow(" ");
3、从指定文件目录中加载级联分类器
if(!cascade,load(cascadeName)) return 0;
4、检查图片是否读入并调用识别标记函数
if(!image.empty())
{
detectAndDraw(image,cascade,scale);
waitkey(0);
}
5、函数调用
void detectAndDraw(Mat&img,CascadeClassifier&cascade,double scale)
{
vector<Rect> faces;
const static ScalarColors[]={CV_RGB(0,0,255),CV_RGB(0,128,255),……};
//处理图像
double t=0;
t=(double)cvGetTickCount()-t;
//用循环将检测到的人脸目标序列画出来
for(vector<Rect>::const_iterator r = faces.begin(); r != faces.end(); r++, i++ )
{
Point center;
int radius;
center.x = cvRound((r->x + r->width*0.5)*scale);
center.y = cvRound((r->y + r->height*0.5)*scale);
radius = cvRound((r->width + r->height)*0.25*scale);
circle( img, center, radius, color, 3, 8, 0 );
}
}