opencv学习之路(40)、人脸识别算法——EigenFace、FisherFace、LBPH

本文详细介绍了人脸识别的三种方法:特征脸(EigenFace)、FisherFace(基于LDA线性判别分析)和局部二值模式直方图(LBPH)。通过原理讲解、流程分析和代码实现,帮助读者理解并掌握这三种算法,其中提供了相关资源链接和代码示例。
摘要由CSDN通过智能技术生成

一、人脸识别算法之特征脸方法(Eigenface)

1、原理介绍及数据收集

特征脸方法主要是基于PCA降维实现。

详细介绍和主要思想可以参考

http://blog.csdn.net/u010006643/article/details/46417127

上述博客的人脸数据库打不开了,大家可以去下面这个博客下载ORL人脸数据库

http://blog.csdn.net/xdzzju/article/details/50445160

下载后,ORL人脸数据库有40个人,每人10张照片。

2、流程

3、相关图示

 

4、代码

  1 #include <opencv2/opencv.hpp>
  2 #include <opencv2/face.hpp>
  3 
  4 using namespace cv;
  5 using namespace cv::face;
  6 using namespace std;
  7 
  8 //对原图归一化
  9 Mat normal(Mat src, Mat dst) {
 10     if (src.channels() == 1)//若原图单通道
 11         normalize(src, dst, 0, 255, NORM_MINMAX, CV_8UC1);
 12     else //否则,原图三通道
 13         normalize(src, dst, 0, 255, NORM_MINMAX, CV_8UC3);
 14     return dst;
 15 }
 16 
 17 void main() {
 18     //读取文件,转换为数据流
 19     string filename = string("at.txt");
 20     ifstream file(filename.c_str(), ifstream::in);
 21     if (!file)
 22         cout << "error" << endl;
 23 
 24     string line, path, classlabel;
 25     vector<Mat>image;
 26     vector<int>labels;
 27     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值