第15课 利用openCV实现人脸识别

这节课,我们再来看一个简单且实用的例子:人脸识别。这个小例子可以让你进一步领略openCV的强悍。

1.复制demo14并改名为demo15。

2.修改capImg函数:

int fmle::capImg() {// 加载人脸检测分类器cv::CascadeClassifier faceCascade;faceCascade.load("E:\\SDK\\opencv-sdk\\data\\haarcascades\\haarcascade_frontalface_default.xml");cv::Mat image;image = cv::imread("girl.jpg");// 将图像转换为灰度图像cv::Mat grayImage;cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);// 进行人脸检测std::vector<cv::Rect> faces;faceCascade.detectMultiScale(grayImage, faces, 1.1, 3, 0, cv::Size(30, 30));// 在图像上绘制检测到的人脸for (const auto& face : faces) {cv::rectangle(image, face, cv::Scalar(0, 255, 0), 2);}mainDlg->drawMatOfPub(image);return 0;
}


3.调试运行,当人脸被检测到时会在人脸周围显示绿框。

4.当然也可以实时检测摄像头中的人脸,流程与图片检测差不多,修改capCam函数:

int fmle::capCam() {videoCap.open(0);    // 加载人脸检测分类器cv::CascadeClassifier faceCascade;faceCascade.load("E:\\SDK\\opencv-sdk\\data\\haarcascades\\haarcascade_frontalface_default.xml");while (true){cv::Mat image;BOOL ifSuccess = videoCap.read(image);// 将图像转换为灰度图像cv::Mat grayImage;cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);// 进行人脸检测std::vector<cv::Rect> faces;faceCascade.detectMultiScale(grayImage, faces, 1.1, 3, 0, cv::Size(30, 30));// 在图像上绘制检测到的人脸for (const auto& face : faces) {cv::rectangle(image, face, cv::Scalar(0, 255, 0), 2);}mainDlg->drawMatOfPub(image);Sleep(40);}    videoCap.release();return 0;
}

不过,这个算法对长的不太帅或不太漂亮的人脸有时候会失效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329037.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各银行小微企业信贷相关产品和机器学习建模案例

各银行小微企业贷款业务 互联网的时代&#xff0c;大量新信息技术的涌现和网络的无处不在&#xff0c;想要抢占这片金融天地&#xff0c;必须重视小微金融业务&#xff0c;小微企业是一直具有重大潜力的客户&#xff0c;商业银行、消金公司发展小微信贷业务可以拓宽自身客户群…

Vue2 实现内容拖拽或添加 HTML 到 Tinymce 富文本编辑器的高级功能详解

在 Web 开发中&#xff0c;Tinymce 被广泛应用作为富文本编辑器。除了基础的文本编辑功能&#xff0c;Tinymce 还提供了一系列高级功能&#xff0c;使得文本编辑更加灵活和便捷。本文将介绍如何在 Tinymce 中实现一些高级功能&#xff0c;并深入了解每个工具的使用。 Tinymce …

基于B/S架构的数字孪生智慧监所可视化监管系统

1 前言 物联网技术的发展使云计算技术得到了迅猛的发展及广泛的应用&#xff0c;智能体系的创建已经成为监狱发展的必然趋势。 智慧监狱的创建、智能化管理的推行是监狱管理的创新&#xff0c;也是监狱整体工作水平提升的具体体现。 1.1 建设背景 近年来&#xff0c;司法部不…

【机器学习:Stochastic gradient descent 随机梯度下降 】机器学习中随机梯度下降的理解和应用

【机器学习&#xff1a;随机梯度下降 Stochastic gradient descent 】机器学习中随机梯度下降的理解和应用 背景随机梯度下降的基本原理SGD的工作流程迭代方法示例&#xff1a;线性回归中的SGD历史主要应用扩展和变体隐式更新&#xff08;ISGD&#xff09;动量平均 AdaGradRMSP…

苦学golang半年,写了一款web服务器

苦学golang半年&#xff0c;写了一款web服务器 文章目录 苦学golang半年&#xff0c;写了一款web服务器example 项目地址&#xff1a;https://github.com/fengyuan-liang/jet-web-fasthttp 可以的话&#xff0c;请star支持一下&#x1f642; 苦学golang半年&#xff0c;写了一款…

微信小程序 引导地址授权 获取位置信息 uniapp

概述 获取位置信息&#xff0c;需要保证是否授权位置信息&#xff0c;有几个条件是导致无法授权的原因 &#xff08;1&#xff09;微信应用未授权定位设置 &#xff08;2&#xff09;首次进入小程序未授权位置信息 &#xff08;3&#xff09;小程序之前阻止过授权位置信息 &…

【ChatGPT】提示设计的艺术:使用清晰的语法

探索清晰的语法如何使您能够将意图传达给语言模型&#xff0c;并帮助确保输出易于解析 All images were generated by Scott and Marco. 这是与Marco Tulio Ribeiro共同撰写的关于如何使用指导来控制大型语言模型&#xff08;LLM&#xff09;的系列文章的第一部分。我们将从基…

静态网页设计——天行九歌(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a;https://www.bilibili.com/video/BV1de411m7y4/?vd_source5f425e0074a7f92921f53ab87712357b 源码&#xff1a;https://space.bilibili.com…

格密码基础:光滑参数

目录 一. 铺垫高斯函数 二. 光滑参数图形理解 三. 光滑参数与格基本区 3.1 高斯与均匀分布的统计距离 3.2 光滑参数理解 四. 光滑参数与最短向量 五. 光滑参数与连续最小值 六. 光滑参数与对偶格的上界 七. 光滑参数与格的上界 八. 小结 一. 铺垫高斯函数 定义高斯密…

x-cmd pkg | norwegianblue - 软件生命周期查询工具

目录 简介首次用户功能特点进一步探索 简介 norwegianblue 由 Hugo van Kemenade 使用 Python 开发&#xff0c;于 2021 年推出。用于显示多种产品的生命周期终止&#xff08;EOL&#xff09;日期的 CLI 工具。基于 endoflife.date 网站的接口&#xff0c;提供有关各种产品的最…

Jmeter相关概念

Jmeter相关概念 jmeter性能指标 Aggregate Report 是 JMeter 常用的一个 Listener&#xff0c;中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思&#xff0c;顺便在这里公布一下&#xff0c;以备大家查阅。 如果大家都是做Web应用的性能测试&a…

Oracle VM VirtualBox xx needs the Micrsoft Visual C++ 2019错误

错误展示 解决方法 重修安装 Visual C 文件 1、前往官网 C 中 Windows 编程概述 | Microsoft Learn 2、找到对应的包 左边导航栏依次选择&#xff1a; 部署本机桌面应用程序-----重新分发Visual C 文件-----最新受支持的Visual C可再发型程序包下载 根据自己电脑系统进行选…