在前两篇文章中,我介绍了《训练自己的haar-like特征分类器并识别物体》的前三个步骤:
1.准备训练样本图片,包括正例及反例样本
2.生成样本描述文件
3.训练样本
4.目标识别
==============
本文将着重说明最后一个阶段——目标识别,也即利用前面训练出来的分类器文件(.xml文件)对图片中的物体进行识别,并在图中框出在该物体。由于逻辑比较简单,这里直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
int
_tmain(
int
argc, _TCHAR* argv[])
{
char
*cascade_name = CASCADE_HEAD_MY;
//上文最终生成的xml文件命名为"CASCADE_HEAD_MY.xml"
cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );
//加载xml文件
if
( !cascade )
{
fprintf
( stderr,
"ERROR: Could not load classifier cascade\n"
);
system
(
"pause"
);
return
-1;
}
storage = cvCreateMemStorage(0);
cvNamedWindow(
"face"
, 1 );
const
char
* filename =
"(12).bmp"
;
IplImage* image = cvLoadImage( filename, 1 );
if
( image )
{
detect_and_draw( image );
//函数见下方
cvWaitKey(0);
cvReleaseImage( &image );
}
cvDestroyWindow(
"result"
);
return
0;
}
|
detect_and_draw
本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/3858957.html,如需转载请自行联系原作者