更新时间:2022-09-08 09:32:40
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;
} |
本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/3858957.html,如需转载请自行联系原作者