基于PCA算法的人脸识别制作自己的样本实现识别自己的人脸

 之前的刚学习OpenCV的时候,对人脸识别感兴趣,觉得能够实现识别自己的脸感觉很棒。通过一段时间的学习之后,发现其实并不难。网上较多的都是PCA算法的人脸识别,这是相对来说比较老的算法了,多数的东西OpenCV都是自带的,借助该算法来学习也比较方便。

下面来具体说一下从制作样本到训练样本,再到最后调用摄像头识别自己人脸的整个过程。

1.图像的采集及预处理

要想识别指定的人,则需要将被识别人的照片做成数据集,也就是训练模型。传统获得照片的途径就是通过手机拍照、自拍。一个人需要20张不同角度和表情的照片,要实现几个人的训练模型,手机拍照显得比较麻烦,而且效果不佳,倒不如通过电脑摄像头实现。通过查阅资料,利用OpenCV写了一个拍照的小程序,并将图片提前进行了灰度处理以及中值滤波处理。然后将图片缩小到指定的120*120的大小,拍出来的照片能达到样本级的水平,省去了很多二次处理的过程。

代码如下:

#include <opencv2\opencv.hpp>

using namespace cv;

int main()
{
	VideoCapture cap(0);
	Mat frame;
	int i=0;
	while (1)  
    {  
            char key = waitKey(100);  
            cap >> frame;
			imshow("frame", frame);
			Mat out;
			Mat out1;
			Mat out2;
			cvtColor(frame, out1, CV_BGR2GRAY);//灰度化
			medianBlur(out1,out,7);//中值滤波
			 resize(out, out2, Size(120, 120));//尺寸缩减
            imshow("out", out2);
            string filename = format("D:\\pic\\pic%d.jpg", i);//存入文件路径  
            switch (key)  
            {  
            case'p':  //按'P'拍照
                i++;  
                imwrite(filename, out2);  
                imshow("photo", out2);  
                waitKey(500);  
                destroyWindow("photo");
                break; 	
            default:  
                break;  
            }  
	}
}

这样得到的图片已经是经过处理之后的,可以当做样本使用。效果如图所示:

这样初步的样本就制作好了。

2.csv文件的生成

当我们写人脸模型的训练程序的时候,我们需要读取人脸和人脸对应的标签。直接在数据库中读取显然是低效的。所以我们用csv文件读取。csv文件中包含两方面的内容,一是

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值