实验室人员管理系统开发(Qt+opencv+sql)

实验室人员管理系统开发(Qt+opencv+sql)前

  • 1引言
    • 1.1系统介绍
    • 1.2软件安装
  • 2开发实现
    • 2.1图像识别
      • 2.1.1人脸检测
      • 2.1.2人脸识别
    • 2.2人机交互界面
    • 2.3数据库搭建
    • 2.4系统打包与移植
  • 3总结

1引言

一直想学习一下Qt开发上位机程序,之前利用Qt Creator做过简单的网络调试助手,了解到Qt软件开发的基本流程以及Qt Creator的基本使用。最近想做一个人脸识别的上位机,学习一下opencv图像处理。因此想到用Qt Creator,并在Qt中使用数据库搭建一个实验室人员管理系统。(此博客主要是记录一下学习过程,便于以后查看)

1.1系统介绍

上位机界面分为数据输入区、操作区、数据库数据显示区。操作人员可以通过上位机对数据库中的数据进行录入、修改、删除、查找(支持图像识别)、导出等操作。数据库中实验室人员信息数据可以通过手工和图像识两种方式录入。

1.2软件安装

  Qt5.14.2 MSVC2017 配置opencv_contrib4.3.0扩展库
  链接: [https://blog.csdn.net/Call_me_A_Bo/article/details/108858239).
  视频资源:https://www.bilibili.com/video/BV1tp4y1i7EJ

2开发实现

2.1图像识别

OpenCV(开源计算机视觉库),实现了图像处理和计算机视觉方面的很多通用算法,是计算机视觉领域最有力的研究工具之一。OPencv包括:图像处理和视觉算法(CV)、机器学习库(ML)、图像和视频输入/输出库(HighGUI)、基本结构和算法,XML支持,绘图函数(CXCORE)以及CVAUx模块。

2.1.1人脸检测

opencv 提供了很多已经训练好的分类器:人脸分类器,眼睛分类器,嘴部分类器等。可以看出这些分类器都是基于Haar特征的cascade分类器(classifiers)。
实验室人员管理系统开发(Qt+opencv+sql)_第1张图片
本系统选用的人脸分类器haarcascade_frontalface_alt.xml,将分类器放入系统根目录中,便于调用。人脸检测代码段如下:`。

 if (!face_cascade.load("F:/QT/prigect/face/untitled/haarcascade_frontalface_alt.xml"))//加载人脸分类器
                   {
   
                       qDebug("Load haarcascade_frontalface_alt failed!");
                       return;
                   }
    face_cascade.detectMultiScale(frame, faceRect, 1.1, 3, 0 | CASCADE_SCALE_IMAGE, Size(180, 180));
    if(!faceRect.empty())
    {
   
        for (size_t i = 0; i < faceRect.size(); i++)
                {
   
                   num++;
                    if(num==11)
                   num=1;
                  qDebug("OK");
                    rectangle(frame, faceRect[i], Scalar(0, 255, 0));      //用绿色矩形画出检测到的位置
                     FaceRoI=frame(faceRect[i]);
                    cv::resize(FaceRoI,face_test,Size(92, 112));
                    str=str.sprintf("%d.jpg",num) ;
                        str1=str.toStdString();
                      cv::imwrite(str1,face_test);
                }
    }
    else
        qDebug("no get");
    cv:

你可能感兴趣的:(Qt)