• 大小: 154KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: qt  opencv  

资源简介

基于qt+opencv的人脸识别代码,输入人脸、训练、识别人脸

资源截图

代码片段和文件信息

#include “dialogin.h“
#include “ui_dialogin.h“

Dialogin::Dialogin(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialogin)
{

    ui->setupUi(this);
    i=0;
    capture = NULL;
     capture = cvCaptureFromCAM(0);
             cvSetCaptureProperty(capture CV_CAP_PROP_frame_WIDTH 640);
             cvSetCaptureProperty(capture CV_CAP_PROP_frame_HEIGHT 480);
    setWindowFlags(windowFlags()&~ Qt::WindowCloseButtonHint);
    //gimage =NULL;
   // connect(this SIGNAL(getimage(const QImage &image)) this SLOT(showimage(const QImage &image)));
    timer = new QTimer(this);
    timer->setInterval(50);
    connect(timer SIGNAL(timeout()) this SLOT(showimage()));
    timer->start();
}

Dialogin::~Dialogin()
{
    delete ui;
}

void Dialogin::Sleep(int msec)
{
    QTime dieTime = QTime::currentTime().addMSecs(msec);
       while( QTime::currentTime() < dieTime )
           QCoreApplication::processEvents(QEventLoop::AllEvents 100);
}
void Dialogin::on_pushButton_photo_clicked()
{

  // qDebug() << ui->pushButton_photo->text() << endl;

    if(ui->lineEdit_name->text() == NULL)
    {
        QMessageBox::warning(thistr(“错误“)tr(“请输入姓名“)QMessageBox::Ok);
    }
    else
    {
        if(capture == NULL)
        {
            QMessageBox::warning(this tr(“警告!!!“) tr(“摄像头打不开!!!!“) QMessageBox::Abort);
            return;
        }
        QDir *path = new QDir;
        bool exist = path->exists(QDir::currentPath() + “/TEMP“);


        if(!exist)
        {
            bool ok = path->mkdir(QDir::currentPath() + “/TEMP“);
            if(ok)
            {
                QMessageBox::warning(thistr(“创建文件夹“)tr(“文件夹创建成功!“));
            }
        }
        QString temp =  QDir::currentPath() + “/TEMP/%d.jpg“;
        char * path_src;
        QByteArray ba= temp.toLatin1();
        path_src = ba.data();




        frame = cvQueryframe( capture );

        std::string filename = cv::format(path_src i);
        ui->pushButton_photo->setText(QString::number(i+110));
        imwrite(filename frame);
        i++;

    }
}

void Dialogin::on_pushButton_start_photo_clicked()
{
    QMessageBox *startbox = new QMessageBox(QMessageBox::Warning  “信息““开始取样请稍后!!!“QMessageBox::NoButtonthis);
    startbox->show();
    Sleep(1000);
    QFile user(QDir::currentPath() + “/usr.txt“);
    if(!user.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        startbox->close();
        qDebug() << user.errorString() <    }
    qint64 usrlinenum =0;
    usrlinenum=1;
    while(!user.atEnd())
    {
        char buf[128];
        qint64 c = user.readLine(buf sizeof(buf));

        if(c > 0)
        {
            usrlinenum++;
            qDebug() << buf <        }
        if(c <0 )
        {
            startbox->close();
            QMessageBox::warning(thistr(“文件读取“)tr(“文件读取失败!!!“));
            return;
        }
    }
    // qDebu

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-17 14:28  face-v1\
     文件        7691  2018-12-13 14:22  face-v1\dialogin.cpp
     文件        1167  2018-12-13 11:54  face-v1\dialogin.h
     文件        2678  2018-12-13 11:53  face-v1\dialogin.ui
     文件        1411  2018-12-10 11:59  face-v1\face.pro
     文件       18600  2018-12-17 14:28  face-v1\face.pro.user
     文件       18628  2018-12-12 17:26  face-v1\face.pro.user.f0a26e1
     文件      919871  2014-10-01 15:33  face-v1\haarcascade_frontalface_alt.xml
     文件         296  2018-12-17 13:27  face-v1\main.cpp
     文件        7702  2018-12-13 16:30  face-v1\mainwindow.cpp
     文件         985  2018-12-13 16:21  face-v1\mainwindow.h
     文件        3474  2018-12-13 16:21  face-v1\mainwindow.ui
     文件       49460  2018-12-13 11:19  face-v1\opencv.jpg

评论

共有 条评论