github:https://github.com/eitail/Face_Recognition 

参考博客:

人脸识别实战之用QT做点事(二):做一个人脸检测界面 有一些类似

OpenCV haarcascade_frontalface_alt2.xml人脸检测测试 detectMultiScale()函数介绍

Qt Creator 窗体控件自适应窗口大小布局 layout

OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理 【推荐看一下】

 

这是一个简单的人脸识别代码,适合初学者研究,开发者使用的是Ubuntu系统,QT,以及Opencv实现的功能。

由于是刚接触qt,所以只尝试做了一些小修改:

1.原本的视频处理用imshow返送,这样结束程序后,还需要手动关闭,比较麻烦,改成了setPixmap返送至ui->label 

2.增加了closeCamera按钮,修改后closeCamera后可再次openCamera打开视频

3.做了一个简单的grid布局,三个视频通道(scale=0.5),两个按钮

4.原图改为灰度图后,通道数减少了,QImage::Format_RGB888  =》 QImage::Format_Indexed8

 

从左到右依次是:原图、灰度图、直方图均衡化

(三)使用opencv官方训练的人脸检测

 

代码是直接git的,修改掉的不需要的部分我都注释掉了

mainwindow.h

/*-------------------------------------------------
*
* Project created by QtCreator 2017-11-03T01:20:33
*
* author:Leo
*
* url:http://www.linuxkiss.com
*
-------------------------------------------------*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDebug>

#include <opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <cv.h>
#include <iostream>
#include <stdio.h>

using namespace std;
using namespace cv;


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();

    private:
        void        Face_recognition();
        void        Pic2Gray(Mat camerFrame,Mat &gray);

    private:
        Ui::MainWindow *ui;
        string face_cascade_name;
        CascadeClassifier face_cascade;
        VideoCapture capture;

    private slots:
        void        openCamara();
        void        closeCamera();
};

#endif // MAINWINDOW_H
View Code

相关文章:

  • 2021-05-18
  • 2021-12-01
  • 2021-09-10
  • 2021-11-01
  • 2021-11-09
  • 2021-09-20
  • 2022-12-23
猜你喜欢
  • 2021-11-10
  • 2022-01-01
  • 2021-11-23
  • 2021-07-15
  • 2021-07-25
  • 2021-11-21
  • 2021-07-27
相关资源
相似解决方案