Qt5.7+Opencv2.4.9人脸识别(二)人脸采集
来源:互联网 发布:淘宝数据查询 编辑:程序博客网 时间:2024/06/05 14:22
【注意】本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次。
源码的下载地址和原理理论部分请走下面连接
http://blog.csdn.net/qq78442761/article/details/71157980
此节博文将讲述人脸采集!
人脸采集必不可少的是人脸检测,Opencv提供了haarcascade这个检测这个检测就是存储了一些值,比如眼睛的颜色比脸颊深,嘴巴的颜色比周围深。
在此,下面这个链接比较详细的说明了Opencv人脸检测,感兴趣的同志可以去看看。
http://blog.csdn.net/qq78442761/article/details/61918994
这一节将实现的功能如下:
1.点击功能增加照片后如下图所示:
输入姓名后,点击拍照,按"P"进行拍照,拍完10张后,会在AddData文件夹里面保存刚刚拍下的10张图片,如下图所示:
然后在Data目录下中的people.txt文件夹存储自动生成的id和姓名,如下图所示:
【注意】此文件是预先创建好的,采用UTF-8编码,不要用ASCII,不然Qt Creator 还得对文件进行编码处理。这里这个小小的设置可以少写很多代码。
下面讲解如何实现这一功能:
代码如下,在addpeople.cpp中
void AddPeople::on_TakeAPotoBtn_clicked(){ if(ui->NamelineEdit->text()==NULL) { QMessageBox::warning(this,tr("错误"),tr("请输入姓名"),QMessageBox::Ok); } else { ui->NamelineEdit->setEnabled(false); ui->TakeAPotoBtn->setEnabled(false); capture=new cv::VideoCapture(0); int i=0; while (i!=10) { char key = cv::waitKey(100); *capture >> frame; imshow("frame", frame); std::string filename = cv::format("AddData\\%d.jpg", i+1); switch (key) { case'p': i++; imwrite(filename, frame); imshow("photo", frame); cv::waitKey(500); cv::destroyWindow("photo"); break; default: break; } } capture->release(); cv::destroyWindow("frame"); ui->NamelineEdit->setEnabled(true); ui->TakeAPotoBtn->setEnabled(true); } int i=file.GetMaxNum("Data//people.txt"); //qDebug()<<i<<endl; QString text=QString::number(i,10)+" "+ui->NamelineEdit->text(); file.AddPeople("Data//people.txt",text); MaxNumAboutPeople=i;}
这里就实现了拍照的功能,再调用std::string filename = cv::format("AddData\\%d.jpg", i+1);就能存储文件了。
如果在people.txt存储信息,在上面的代码中可以可以调用了file.AddPeople("Data//people.txt",text);
下面就来看看这个Addpeople这个函数:
void MyFILE::AddPeople(QString path,QString text){ QFile file(path); if(!file.open(QIODevice::WriteOnly|QIODevice::Append)) { QMessageBox about; about.setText(tr("添加人员时文件打开失败")); about.exec(); return; } QTextStream in(&file); in.setCodec("UTF-8"); in<<text<<"\r\n"; file.close();}是不是很简单呢!
在此,人脸采集结束了,人脸处理将会在下一节说明。
源码和理论部分在本博文开头有提供。
1 0
- Qt5.7+Opencv2.4.9人脸识别(二)人脸采集
- Qt5.7+Opencv2.4.9人脸识别(一)项目介绍
- Qt5.7+Opencv2.4.9人脸识别(四)模型训练
- Qt5.7+Opencv2.4.9人脸识别(五)人脸识别
- Qt5.7+Opencv2.4.9人脸识别(三)人脸处理
- Qt5.7+Opencv2.4.9人脸识别(六)Tcp,Mysql,3DES,XML综合
- 人脸识别opencv2.4.9
- Python opencv2 人脸识别
- QT5+OpenCV人脸识别
- HMM人脸识别用OpenCV2.2
- 基于openCv2的人脸识别入门
- Android OpenCV 人脸识别 Opencv2.4.11
- python使用opencv2人脸识别
- Qt5.8&opencv3.2&人脸识别
- python下实现人脸识别(opencv2)
- opencv2-5利用摄像头进行人脸识别
- 图像处理--linux opencv2多线程人脸识别
- VS2010+Opencv2.4.4+MFC实现人脸检测与识别
- 机器学习:从编程的角度去理解逻辑回归
- U盘去除写保护
- 如何使用QQ群日历和群活动进行会议室安排
- Ubuntu14.04环境下配置TFTP服务器
- Maven无法创建包含webapp文件,国内连接maven官方的仓库更新依赖库,网速一般很慢,
- Qt5.7+Opencv2.4.9人脸识别(二)人脸采集
- 修一颗心
- javascript对象深拷贝
- python 、mmap 实现内存数据共享
- bbs段的理解
- SpringMVC框架
- Android 技术选型
- FTS数据库优化(Android)原理与应用详解(2)
- myeclipse中maven的配置