基于qt的人脸识别系统,qt人脸识别实例教程

  基于qt的人脸识别系统,qt人脸识别实例教程

  私藏项目实操分享

  夸脱功能优化:Qt人脸识别@TOC

  一、效果图

  如图一所示,为我用夸脱所做的一个简易的人脸识别代码,点击识别即可自动识别出照片中的人脸。

  二、使用步骤

  项目架构:

  1.赞成部分

  代码如下:

  # -

  #由的使用创建的项目2021-08-01T20:37:50

  # -

  QT=核心图形用户界面

  greaterThan(QT_MAJOR_VERSION,4): QT=小部件

  TARGET=OpencvFace

  模板=应用程序

  #如果使用,下面的定义会使编译器发出警告

  # Qt的任何已被标记为不推荐使用的特性(确切的警告

  #取决于您的编译器)。请参考的文档

  #弃用API,以便了解如何将您的代码从应用程序接口中移植出来。

  DEFINES=QT_DEPRECATED_WARNINGS

  #如果使用不推荐使用的API,还可能导致代码无法编译。

  #为此,请取消对以下行的注释。

  #您也可以选择仅在夸脱的特定版本中禁用不推荐使用的API .

  # DEFINES=QT _ DISABLE _ DEPRECATED _ BEFORE=0x 060000 #禁用Qt 6.0.0之前已弃用的所有应用程序接口

  来源=\

  主页面

  主窗口。卡片打印处理机(Card Print Processor的缩写)

  标题=\

  主窗口。h

  表单=\

  主窗口。用户界面

  包含路径=D:\ TYUT \ C-yunding \ program app \ C \ Qt \ OpenCV _ 3。4 .3-构建\安装\包含

  LIBS=D:\ TYUT \ C-yunding \ program app \ C \ Qt \ OpenCV _ 3。4 .3-Build \ install \ x86 \ mingw \ bin \ libopencv _ * .动态链接库

  2.h部分

  代码如下:

  #ifndef MAINWINDOW_H

  #定义主窗口_H

  #包含主窗口

  #包含opencv2/opencv.hpp

  #包含矢量

  使用名称空间cv;

  使用命名空间标准

  命名空间Ui {

  类主窗口

  }

  类主窗口:公共主窗口

  {

  q _对象

  公共:

  显式主窗口(q widget * parent=0);

  ~主窗口();

  void initMainWindow();

  void imgProc();

  void img show();

  专用插槽:

  void on _ detect button _ clicked();

  私人:

  ui:主窗口* ui

  Mat myImg

  QImage myQImg

  };

  #endif //MAINWINDOW_H

  ## 3.卡片打印处理机(卡片打印处理器的缩写)部分

  代码如下:

  #包含"主窗口. h "

  #include ui_mainwindow.h

  主窗口:主窗口(q widget * parent):

  QMainWindow(父级),

  用户界面(新Ui:主窗口)

  ui- setupUi(这个);

  initMainWindow();

  主窗口:~主窗口()

  删除ui;

  void MainWindow:initMainWindow()

  QString img path= ly.jpg//你要识别的图片,所在位置需与赞成文件在同级目录

  mat img data=im read(img path。到拉丁语1().data());

  cvtColor(imgData,imgData,COLOR _ bgr 2 RGB);

  myImg=imgData

  myQImg=QImage((const unsigned char *)(img数据。data)、imgData.cols、imgData.rows、QImage:Format _ RGB 888);

  img show();

  void MainWindow:imgShow()

  ui-view label-setPixmap(qpix map:from image(myqimg。scaled(ui-view label-size()、Qt:KeepAspectRatio));

  void MainWindow:imgProc()

  级联分类器人脸检测器;

  级联分类器眼睛检测器;

  string fDetectorPath= Haar scade _ front alface _ alt。XML ;

  人脸检测器。load(fDetectorPath);

  string eDetectorPath= Haar scade _ eye _ tree _ glasses。XML ;

  眼睛_探测器。load(eDetectorPath);

  向量矩形面;

  Mat imgSrc=myImg

  马特伊姆格雷

  cvtColor(imgSrc,imgGray,CV _ RGB 2 gray);

  均衡器(imgGray,img gray);

  人脸检测器多尺度(imgGray,faces,1.1,2,0 CV_HAAR_SCALE_IMAGE,Size(30,30));

  for(int I=0;我面对。size();我)

  点中心(面【我】。x面[我].宽度* 0.5,面[我].y面[我].高度* 0.5);

  椭圆(imgSrc,中心,大小(faces[i]).宽度* 0.5,面[我].高度* 0.5),0,0,360,标量(255,0,255),4,8,0);

  mat face ROI=img gray(faces[I]);

  矢量直眼;

  眼睛_探测器。检测多尺度(人脸ROI,眼睛,1.1,2,0 CV_HAAR_SCALE_IMAGE,Size(30,30));

  for(int j=0;j眼。size();j)

  点中心(面【我】。x眼[j]的缩写.x眼[j]的缩写.宽度* 0.5,面[我].y眼[j]的缩写.y眼[j]的缩写.高度* 0.5);

  int radius=cvRound((eyes[j].眼睛宽度[我].高度)* 0.25);

  圆圈(imgSrc,圆心,半径,标量(255,0,0),4,8,0);

  Mat imgDst=imgSrc

  myQImg=QImage((const unsigned char *)(img dst。data)、imgDst.cols、imgDst.rows、QImage:Format _ RGB 888);

  img show();

  void主窗口:on _ detect button _ clicked()

  imgProc();

  4.用户界面部分:

  代码如下:

  ?可扩展标记语言版本=1.0 编码=UTF八号?

  用户界面版本=4.0

  类主窗口/类

  widget name=MainWindow

  属性名称=几何

  矩形

  x 0 /x

  y 0 /y

  宽度800/宽度

  身高600/身高

  /rect

  /属性

  属性名=windowTitle

  字符串主窗口/字符串

  /属性

  小部件名称=centralWidget

  小部件名称=viewLabel

  属性名称=几何

  矩形

  x 30 /x

  10日元/年

  宽度401/宽度

  身高541/身高

  /rect

  /属性

  属性名称=文本

  字符串/

  /属性

  /小部件

  widget name=detectPushButton

  属性名称=几何

  矩形

  x 630 /x

  380日元/年

  宽度101/宽度

  身高41/身高

  /rect

  /属性

  属性名=字体

  字体

  点数14/点数

  /font

  /属性

  属性名称=文本

  线识别/字符串

  /属性

  /小部件

  /小部件

  widget name=menuBar

  属性名称=几何

  矩形

  x 0 /x

  y 0 /y

  宽度800/宽度

  身高17/身高

  /rect

  /属性

  /小部件

  widget name=mainToolBar

  属性名=toolBarArea

  枚举TopToolBarArea/枚举

  /属性

  属性名=toolBarBreak

  布尔假/布尔

  /属性

  /小部件

  widget name=statusBar/

  /小部件

  布局默认间距=6 边距=11/

  资源/

  连接/

  /ui

  以上是部分夸脱关于功能优化的部分,希望通过这些文章能够使大家的夸脱软件更加美观和完美!

  希望能帮助到大家,感谢大家支持~( ̄ ̄~)~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: