#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <stdio.h>
#include <ocl\ocl.hpp>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
CascadeClassifier cas("haarcascade_frontalface_default.xml"); //加载人脸分类器
Ptr<FaceRecognizer> fc = createFisherFaceRecognizer();
//vector<Mat> images;
//vector<int>labels;
VideoCapture cap;
vector<Rect> recs;
int x = 0, y = 0;
int main()
{
Mat a1 = imread("m01.jpg", CV_LOAD_IMAGE_GRAYSCALE); //加载用于训练的人脸照片
Mat a2 = imread("m02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat a3 = imread("m03.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat a4 = imread("m04.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat a5 = imread("m05.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat b1 = imread("k01.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat b2 = imread("k02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat b3 = imread("k03.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat b4 = imread("k04.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat b5 = imread("k05.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat c1 = imread("d01.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat c2 = imread("d02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat c3 = imread("d03.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat c4 = imread("d04.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat c5 = imread("d05.jpg", CV_LOAD_IMAGE_GRAYSCALE);
vector<Mat> images;
vector<int>labels;
images.push_back(a1); //照片和标签存入向量里,我了三个人的
labels.push_back(0);
images.push_back(a2);
labels.push_back(0);
images.push_back(a3);
labels.push_back(0);
images.push_back(a4);
labels.push_back(0);
images.push_back(a5);
labels.push_back(0);
images.push_back(b1);
labels.push_back(1);
images.push_back(b2);
labels.push_back(1);
images.push_back(b3);
labels.push_back(1);
images.push_back(b4);
labels.push_back(1);
images.push_back(b5);
labels.push_back(1);
images.push_back(c1);
labels.push_back(2);
images.push_back(c2);
labels.push_back(2);
images.push_back(c3);
labels.push_back(2);
images.push_back(c4);
labels.push_back(2);
images.push_back(c5);
labels.push_back(2);
fc->train(images, labels); //训练
VideoCapture cap;
cap.open(0);
Mat image;
vector<Rect> recs;
Mat test(400, 500, CV_8UC1);
Mat gray;
int x = 0, y = 0;
for (;;)
{
cap >> image;
if (image.empty())
break;
cas.detectMultiScale(image, recs,1.2,6,0,Size(50,50)); //先检测人脸
for (int i = 0; i < recs.size();i++)
{
rectangle(image, recs[i], Scalar(0, 0, 255));
x = recs[i].x + recs[i].width / 2;
y = recs[i].y + recs[i].height / 2;
Mat roi = image(recs[i]); //因为我训练的样本是400*500大小,所以需要把摄像头中的人脸区域改为400*500大小
cvtColor(roi, gray, CV_BGR2GRAY);
resize(gray, test, Size(400, 500));
int result = fc->predict(test);
switch (result)
{
case 0:
putText(image, "a", Point(recs[i].x, recs[i].y), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2); break;
case 1:
putText(image, "b", Point(recs[i].x, recs[i].y), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2); break;
case 2:
putText(image, "c", Point(recs[i].x, recs[i].y), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2); break;
}
}
imshow("Sample", image);
if (waitKey(30) >= 0)
break;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
FaceRecTest1.rar_opencv 训练_opencv人脸识别_人脸_人脸识别_人脸识别opencv
共58个文件
tlog:23个
jpg:9个
obj:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 25 浏览量
2022-07-15
12:53:05
上传
评论
收藏 12.55MB RAR 举报
温馨提示
人脸识别训练加识别测试程序,采用Opencv开源库
资源推荐
资源详情
资源评论
收起资源包目录
FaceRecTest1.rar (58个子文件)
FaceRecTest1
FaceRecTest1.suo 12KB
FaceRecTest1
d02.jpg 53KB
k05.jpg 44KB
d04.jpg 54KB
FaceRecTest1.vcxproj 4KB
haarcascade_frontalface_default.xml 908KB
haarcascade_frontalface_alt2.xml 528KB
FaceRecTest1.vcxproj.filters 942B
k01.jpg 43KB
d03.jpg 42KB
k03.jpg 37KB
d05.jpg 50KB
k02.jpg 65KB
FaceRecTest1.vcxproj.user 143B
main.cpp 4KB
Debug
vc100.idb 867KB
FaceRecTest1.vcxprojResolveAssemblyReference.cache 713B
link.9520.read.1.tlog 2B
FaceRecTest1.exe.embed.manifest 406B
CL.write.1.tlog 3KB
CL.read.1.tlog 54KB
mt.read.1.tlog 802B
rc.write.1.tlog 762B
link.9520.write.1.tlog 2B
facerec_eigenfaces.obj 436KB
rc.read.1.tlog 746B
facerec_save_load.obj 437KB
FaceRecTest1.exe.intermediate.manifest 381B
mt.command.1.tlog 890B
cl.command.1.tlog 4KB
link-cvtres.read.1.tlog 2B
link.8664.read.1.tlog 2B
main.obj 282KB
FaceRecTest1.lastbuildstate 84B
link.write.1.tlog 2KB
FaceRecTest1.exe.embed.manifest.res 472B
FaceRecTest1.log 3KB
link.8664.write.1.tlog 2B
link-cvtres.write.1.tlog 2B
link.command.1.tlog 6KB
rc.command.1.tlog 1KB
link.read.1.tlog 17KB
mt.write.1.tlog 584B
link.8664-cvtres.write.1.tlog 2B
link.8664-cvtres.read.1.tlog 2B
link.9520-cvtres.write.1.tlog 2B
link.9520-cvtres.read.1.tlog 2B
facerec_demo.obj 422KB
FaceRecTest1.write.1.tlog 0B
FaceRecTest1_manifest.rc 214B
vc100.pdb 1MB
k04.jpg 40KB
FaceRecTest1.sdf 13.39MB
FaceRecTest1.sln 903B
ipch
facerectest1-8645d7c9
facerectest1-e5fb1366.ipch 55.44MB
Debug
FaceRecTest1.pdb 1.46MB
FaceRecTest1.ilk 540KB
FaceRecTest1.exe 87KB
共 58 条
- 1
资源评论
- 陆世康2024-03-29感谢资源主的分享,很值得参考学习,资源价值较高,支持!
- qq_429637612023-04-23资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
刘良运
- 粉丝: 66
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功