利用opencv自带的Haar级联分类器模型

OpenCV自带的Haar级联分类器模型:

haarcascade_eye.xml: 这个模型用于检测眼睛。

haarcascade_eye_tree_eyeglasses.xml: 这个模型用于检测眼镜。

haarcascade_frontalcatface.xml: 这个模型用于检测猫脸。 haarcascade_frontalcatface_extended.xml: 这个模型用于扩展的猫脸检测。 haarcascade_frontalface_alt.xml: 这个模型是一个备用的面部检测模型。 haarcascade_frontalface_alt2.xml: 这个模型是另一个备用的面部检测模型。 haarcascade_frontalface_alt_tree.xml: 这个模型是用于面部检测的备用树模型。 haarcascade_frontalface_default.xml: 这个模型是用于面部检测的默认模型。 haarcascade_fullbody.xml: 这个模型用于全身检测。

haarcascade_lefteye_2splits.xml: 这个模型用于检测左眼。 haarcascade_licence_plate_rus_16stages.xml: 这个模型用于检测俄罗斯车牌。 haarcascade_lowerbody.xml: 这个模型用于下半身检测。

haarcascade_profileface.xml: 这个模型用于侧面脸部检测。

haarcascade_righteye_2splits.xml: 这个模型用于检测右眼。 haarcascade_russian_plate_number.xml: 这个模型用于检测俄罗斯车牌号码。 haarcascade_smile.xml: 这个模型用于微笑检测。

这些模型都在安装的opencv-source路径下

人脸检测实例

复制代码
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/imgproc/imgproc.hpp>

int main()
{
    // 加载人脸分类器
    cv::CascadeClassifier faceCascade;

    //分类器文件下载地址: https://github.com/opencv/opencv/tree/master/data/haarcascades
    //在OpenCV的源码目录下其实也有(opencv\build\etc\haarcascades)。
    faceCascade.load("C:/haarcascade_frontalface_alt2.xml");
    // 打开摄像头
    cv::VideoCapture capture(0);
    if (!capture.isOpened())
    {
        std::cout << "无法打开摄像头" << std::endl;
        return -1;
    }

    // 创建窗口
    cv::namedWindow("Face Detection", cv::WINDOW_NORMAL);

    while (true)
    {
        cv::Mat frame;
        capture >> frame; // 读取视频帧

        // 将彩色图像转换为灰度图像以加快处理速度
        cv::Mat grayFrame;
        cv::cvtColor(frame, grayFrame, cv::COLOR_BGR2GRAY);

        // 对图像进行人脸检测
        std::vector<cv::Rect> faces;
        faceCascade.detectMultiScale(grayFrame, faces, 1.1, 3, 0, cv::Size(30, 30));

        // 在图像上绘制人脸边界框
        for (size_t i = 0; i < faces.size(); i++)
        {
            cv::rectangle(frame, faces[i], cv::Scalar(0, 255, 0), 2);
        }

        // 显示结果图像
        cv::imshow("Face Detection", frame);

        // 按下ESC键退出循环
        if (cv::waitKey(1) == 27)
            break;
    }

    // 释放摄像头和窗口资源
    capture.release();
    cv::destroyAllWindows();

    return 0;
}
相关推荐
Lab_AI2 分钟前
山东兴文携手创腾科技打造数智化研发新标杆!电子实验记录本ELN在精细化工领域再添标杆用户
人工智能·数字化转型·企业数据管理·数智化转型·电子实验记录本
Henry-SAP5 分钟前
SAP MRP PIR消耗机制解析
人工智能·sap·erp
byte轻骑兵5 分钟前
【HFP】规范精讲[23]: 蓝牙超宽频语音革命——LC3-SWB编码深度解析,重塑无线通话体验
人工智能·语音识别·蓝牙·hfp·通话
jimmyleeee12 分钟前
人工智能基础知识笔记三十九:几个Skills的网站
人工智能·笔记·chatgpt
前端不太难15 分钟前
从 OpenClaw 到端侧 AI:低算力智能体架构设计
人工智能·状态模式
callJJ20 分钟前
Spring AI ETL 数据处理管道实战指南:从原始文档到向量索引
java·人工智能·spring·ai·etl·spring ai
志栋智能25 分钟前
当巡检遇上超自动化:一场运维质量的系统性升级
运维·服务器·网络·数据库·人工智能·机器学习·自动化
有个人神神叨叨28 分钟前
Anthropic Managed Agents 详细介绍
人工智能
跨境卫士—小依29 分钟前
平台流量分发机制变化跨境卖家如何重新获取曝光
大数据·人工智能·跨境电商·亚马逊·营销策略
阿杰学AI30 分钟前
AI核心知识120—大语言模型之 基于人类反馈的强化学习 (简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·rlhf·基于人类反馈的强化学习