本文共 946 字,大约阅读时间需要 3 分钟。
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,如需转载请自行联系原作者