QT+opencv实现人脸检测并提取裁剪
来源:互联网 发布:python 查数据类型 编辑:程序博客网 时间:2024/05/22 06:49
开发环境:
ubuntu
Opencv3.0.0
QT4
最近在学习人脸识别,基于特征脸的人脸识别。需要处理一些图片加入训练集,所以写了这个小的demo进行图片处理。
1首先在QT中新建一个工程
选择QT console application 控制台程序
2在.pro文件中添加opencv
CONFIG += link_pkgconfigPKGCONFIG += opencv
3在main.cpp文件中添加如下代码
#include "opencv2/core/core.hpp"#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include<cv.h>#include <iostream>#include <stdio.h>using namespace std;using namespace cv;std::vector<Rect> faces;string face_cascade_name = "haarcascade_frontalface_alt2.xml";//该文件存在于OpenCV安装目录下的\sources\data\haarcascades内,需要将该xml文件复制到当前工程目录下CascadeClassifier face_cascade;void detectAndDisplay(Mat frame,int flage);int main(int argc, char** argv){ if (!face_cascade.load(face_cascade_name)){ printf("级联分类器错误,可能未找到文件,拷贝该文件到工程目录下!\n"); return -1; } for(int i=0;i<50;i++) { string str = format("face/korean_male/%d.jpg",i);//读取文件 Mat image; image = imread(str, 1); //当前工程的image目录下的lyf.jpg文件,注意目录符号 if (image.empty()) { printf("no find image!"); } imshow("人脸识别", image); waitKey(1000); detectAndDisplay(image,i); //调用人脸检测函数 waitKey(1000); }}void detectAndDisplay(Mat face,int flage){ Mat face_gray; cvtColor(face, face_gray, CV_BGR2GRAY); //rgb类型转换为灰度类型 equalizeHist(face_gray, face_gray); //直方图均衡化 face_cascade.detectMultiScale(face_gray, faces, 1.1, 4, 0, Size(30, 30));//找出人脸 for (size_t j = 0; j < faces.size(); j++) { Mat faceROI = face(faces[j]); Mat MyFace; if (faceROI.cols > 100) { resize(faceROI, MyFace, Size(92, 112));//调整图像大小为92*112 string str = format("face/korean_male2/%d.jpg",flage); imwrite(str, MyFace); imshow("处理结果", MyFace); } } }
注意:
需要将
haarcascade_frontalface_alt2.xml复制到工程目录
//该文件存在于OpenCV安装目录下的\sources\data\haarcascades内,需要将该xml文件复制到当前工程目录下。
0 0
- QT+opencv实现人脸检测并提取裁剪
- OpenCV-检测并提取表格
- 关于QT+OPENCV 实现人脸检测
- QT+Opencv实现人脸检测与性别识别(1)
- QT+Opencv实现人脸检测与性别识别(2)
- Qt多线程实现opencv的人脸检测
- 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- 用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
- OpenCV实现人脸检测
- OpenCV实现人脸检测
- OpenCV实现人脸检测
- opencv实现人脸检测
- OpenCV实现人脸检测
- OPENCV人脸检测实现
- 自定义分页
- 803C Maximal GCD
- 二哥 <LINUX内核设计与实现> 阅读笔记 一
- 矩形覆盖
- Git 常用命令大全
- QT+opencv实现人脸检测并提取裁剪
- 3533---->League of Legends
- Angular自定义过滤器
- android_Class_Color
- [leetcode]: 461. Hamming Distance
- Android APP启动时出现白屏或者黑屏怎么办?
- hadoop2.4.1集群搭建
- 霍纳法则(horner)
- tf.concat