qt+opencv人脸人眼检测识别

项目运行涉及到opencv库,以及haarcascade_frontalface_default.xml和haarcascade_eye_tree_eyeglasses.xml。qt配置opencv可见先前文章,另外这两份OpenCV 中用于眼睛检测的级联分类器xml文件,是我在网上下载的。

把要使用到的文件都放到当前工程目录下:


相关代码:

cpp 复制代码
#include <opencv2/imgcodecs.hpp>
#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/core/hal/interface.h>
#include <opencv2/features2d/hal/interface.h>
#include <opencv2/imgproc/hal/interface.h>
#include <opencv2/objdetect.hpp>

 	QString imgPath = "D:\\Qt\\File\\open_test\\zyh.jpg";
    cv::Mat imgMat = cv::imread(imgPath.toStdString());

    //脸部识别
    cv::CascadeClassifier faceCascade;
    faceCascade.load("D:\\Qt\\File\\open_test\\opencv\\haarcascades\\haarcascade_frontalface_default.xml");
    if(faceCascade.empty())
        std::cout<< "face XML file not loaded"<<std::endl;

    std::vector<cv::Rect> faces;
    faceCascade.detectMultiScale(imgMat, faces, 1.1, 10);
    for(int i=0; i<faces.size(); i++){
        cv::rectangle(imgMat, faces[i].tl(), faces[i].br(), cv::Scalar(255,0,255),3);
    }


    //眼部识别
    cv::CascadeClassifier eyeCascade;
    eyeCascade.load("D:\\Qt\\File\\open_test\\opencv\\haarcascades\\haarcascade_eye_tree_eyeglasses.xml");
    if(eyeCascade.empty())
        std::cout<< "eye XML file not loaded"<<std::endl;

    std::vector<cv::Rect> eyes;
    eyeCascade.detectMultiScale(imgMat, eyes, 1.1, 10);
    for(int i=0; i<eyes.size(); i++){
        cv::rectangle(imgMat, eyes[i].tl(), eyes[i].br(), cv::Scalar(255,0,0),1);
    }


    cv::imshow("Image", imgMat);
相关推荐
加号32 小时前
【Qt】 应用程序发布:依赖库拷贝与部署指南
开发语言·qt
sali-tec5 小时前
C# 基于OpenCv的视觉工作流-章62-线线距离
图像处理·人工智能·opencv·算法·计算机视觉
神仙别闹6 小时前
基于QT(C++)实现线性表的建立、插入、删除、查找等基本操作
java·c++·qt
LuDvei9 小时前
Windows x86 架构下 Ubuntu 虚拟机内打包 Qt 文件指南
windows·qt·ubuntu
机器人图像处理10 小时前
6-自动白平衡(灰度世界算法)
opencv·算法·相机
江公望12 小时前
Qt Q_OBJECT宏,5分钟讲清楚
qt
小灰灰搞电子13 小时前
PyQt QtWaitingSpinner详解-为你的 Qt 程序带来丝滑等待动画
开发语言·qt·pyqt
史迪仔011213 小时前
[QML] Qt6/Qt5四大渐变效果实战指南
开发语言·前端·c++·qt
小短腿的代码世界13 小时前
QCefView深度解析:在Qt中嵌入Chromium的架构设计与性能优化实战
开发语言·qt·性能优化