资源描述:
《opencv 人脸识别 (二)训练和识别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、opencv人脸识别(二)训练和识别分类:C/C++ComputerVisionMachineLearning2014-03-0413:219819人阅读评论(59)收藏举报人脸检测人脸识别归一化对齐opencv上一篇中我们对训练数据做了一些预处理,检测出人脸并保存在piccolorx文件夹下(x=1,2,3,...类别号),本文做训练和识别。为了识别,首先将人脸训练数据转为灰度、对齐、归一化,再放入分类器(EigenFaceRecognizer),最后用训练出的model进行predict。-----------------
2、------------------------环境:vs2010+opencv2.4.6.0特征:eigenfaceInput:一个人脸数据库,15个人,每人20个样本(左右)。Output:人脸检测,并识别出每张检测到的人脸。-----------------------------------------1.为训练数据预处理( 转为灰度、对齐、归一化 )·转为灰度和对齐是后面做训练时EigenFaceRecognizer的要求;·归一化是防止光照带来的影响在上一篇的 2.2Prehelper.cpp文件中加入函数voidres
3、izeandtogray(char*dir,intk,vector&images,vector&labels,vector&testimages,vector&testlabels);otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecor
4、deroftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecret
5、ary,Ministersand[cpp]viewplaincopyprint?1.void resizeandtogray(char* dir,int K, vector &images, vector &labels, 2. vector &testimages, vector &testlabels) 3.{ 4. IplImage* standard = cvLoadImage("D:\privacy\picture\photo\2.jpg",CV_LOAD_
6、IMAGE_GRAYSCALE); 5. string cur_dir; 6. char id[5]; 7. int i,j; 8. for(int i=1; i<=K; i++) 9. { 10. cur_dir = dir; 11. cur_dir.append("gray\"); 12. _itoa(i,id,10); 13. cur_dir.append(id); 14. const char* d
7、d = cur_dir.c_str(); 15. CStatDir statdir; 16. if (!statdir.SetInitDir(dd)) 17. { 18. puts("Dir not exist"); 19. return; 20. } 21. cout<<"Processing samples in Class "<fi
8、le_vec = statdir.BeginBrowseFilenames("*.*"); 23. for (j=0;j