/**
*@breif draw rect on image's face rect
*@author [email protected]
*@date 2009.9.8
*@note http://blog.sciencenet.cn/blog-297739-261470.html
*/
void CZFaceDetect::DrawFaceBox(CvRect* r, IplImage* imageOnlyFace, CString userName/* = "Don't Know"*/)
{
if(isFaceROI)
{
//┏
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x),cvRound(r->y)),
cvPoint(cvRound(r->x)+20,cvRound(r->y)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x),cvRound(r->y)),
cvPoint(cvRound(r->x),cvRound(r->y)+20),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
//┑
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x+r->width)-20,cvRound(r->y)),
cvPoint(cvRound(r->x+r->width),cvRound(r->y)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x+r->width),cvRound(r->y)),
cvPoint(cvRound(r->x+r->width),cvRound(r->y)+20),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
CvFont nameFont;
cvInitFont(&nameFont,CV_FONT_HERSHEY_COMPLEX ,0.8f,0.8f,0,2,8);
cvPutText(imageOnlyFace, userName, cvPoint(cvRound(r->x),cvRound(r->y)-40), &nameFont, CV_RGB(0, 255, 0));
//┗
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x),cvRound(r->y+r->height)-20),
cvPoint(cvRound(r->x),cvRound(r->y+r->height)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x),cvRound(r->y+r->height)),
cvPoint(cvRound(r->x)+20,cvRound(r->y+r->height)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
//┛
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x+r->width),cvRound(r->y+r->height)-20),
cvPoint(cvRound(r->x+r->width),cvRound(r->y+r->height)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
cvLine(imageOnlyFace,
cvPoint(cvRound(r->x+r->width),cvRound(r->y+r->height)),
cvPoint(cvRound(r->x+r->width)-20,cvRound(r->y+r->height)),
CV_RGB(255,0,0),
3,
CV_AA,
0
);
}
}