且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【原】训练自己的haar-like特征分类器并识别物体(3)

更新时间:2022-09-08 09:32:40

在前两篇文章中,我介绍了《训练自己的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;
}
【原】训练自己的haar-like特征分类器并识别物体(3) detect_and_draw

本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/3858957.html,如需转载请自行联系原作者