C++ OpenCV【人脸识别人眼识别】

article/2025/10/26 9:45:35

         此文章仅对人脸位置进行检测,使用haar级联的方法[OpenCV自带]

#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>
#include <cstdio>
using namespace std;
using namespace cv;//定义7种颜色,用于标记人脸
Scalar colors[] =
{//红橙黄绿青蓝紫【RGB】CV_RGB(255, 0, 0),CV_RGB(255, 97, 0),CV_RGB(255, 255, 0),CV_RGB(0, 255, 0),CV_RGB(0, 255, 255),CV_RGB(0, 0, 255),CV_RGB(160, 32, 240)
};int main()
{//读取训练器 haarCascadeClassifier classifier_face;string haarfileFace = "D:\\Library\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt.xml";//【[opencv安装地址]\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt.xml】CascadeClassifier classifier_eye;string haarfileEye = "D:\\Library\\opencv\\build\\etc\\haarcascades\\haarcascade_eye.xml";if (!classifier_face.load(haarfileFace))//加载文件{cout << "coulud not load face image..." << endl;return -1;}if (!classifier_eye.load(haarfileEye)){cout << "coulud not load eye image..." << endl;return -1;}Mat srcImage, grayImage, grayImage1, dstImage;srcImage = imread("rg.png");//读取图片/*imshow("原图", srcImage);waitKey(0);*/dstImage = srcImage.clone();//复制一张图片cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);//生成灰度图 提高检测效率//检测人脸vector<Rect> faceRect;classifier_face.detectMultiScale(grayImage, faceRect, 1.1, 3, 0);//调用分类器对象cout << "检测到人脸个数:" << faceRect.size() << endl;if (faceRect.size()){for (int i = 0; i < faceRect.size(); i++){cv::rectangle(dstImage, faceRect[i], Scalar(0, 0, 255), 2);//标记--在脸部画矩形//Point center;//int radius;//center.x = cvRound((faceRect[i].x + faceRect[i].width * 0.5));//center.y = cvRound((faceRect[i].y + faceRect[i].height * 0.5));//radius = cvRound((faceRect[i].width + faceRect[i].height) * 0.25);//circle(dstImage, center, radius, colors[i % 7], 3);//标记--在脸部画圆(画矩形和画圆二选一)//在人脸图像中检测人眼和嘴巴Mat faceimg = dstImage(faceRect[i]);//获取人脸矩形图像/*imshow("faceimg", faceimg);waitKey(0);*/cvtColor(faceimg, grayImage1, COLOR_BGR2GRAY);//检测眼睛和嘴巴vector<Rect> eyeRect;classifier_eye.detectMultiScale(grayImage1, eyeRect, 1.1, 3, 0);if (eyeRect.size()){for (int j = 0; j < eyeRect.size(); j++){标记--在眼部画矩形//Rect tmpRect;//tmpRect.x = faceRect[i].x + eyeRect[j].x;//tmpRect.y = faceRect[i].y + eyeRect[j].y;//tmpRect.width = eyeRect[j].width;//tmpRect.height = eyeRect[j].height;//cv::rectangle(dstImage, tmpRect, Scalar(255, 0, 0));//标记--在眼部画圆(画矩形和画圆二选一)Point centerEye;int radiusEye;centerEye.x = cvRound((faceRect[i].x + eyeRect[j].x + eyeRect[j].width * 0.5));centerEye.y = cvRound((faceRect[i].y + eyeRect[j].y + eyeRect[j].height * 0.5));radiusEye = cvRound((eyeRect[j].width + eyeRect[j].height) * 0.25);circle(dstImage, centerEye, radiusEye, colors[i % 7], 2);}}}}imwrite("rgDetect.png", dstImage);//显示最终检测结果imshow("【人脸识别detectMultiScale】", dstImage);waitKey(0);system("pause");return 0;
}

        找茬:火箭少女少了一人

        Haar级联预训练模型

 

 


http://chatgpt.dhexx.cn/article/VIvYYYtJ.shtml

相关文章

通过opencv实现简单的人脸识别

文章目录 通过opencv实现简单的人脸识别1.环境配置2.收集数据集3.人脸数据的处理4.通过神经网络训练模型5.进行人脸识别6.总结 通过opencv实现简单的人脸识别 ​ 网上有很多通过opencv实现的简单人脸识别&#xff0c;本文于其他文章差别不大&#xff0c;仅为作者复现代码后的一…

基于OpenCv的人脸识别(Python完整代码)

实验环境&#xff1a;python 3.6 opencv-python 3.4.14.51 建议使用 anaconda配置相同环境 背景 人脸识别步骤 图1&#xff1a;人脸识别流程图 人脸采集 采集人脸图片的方法多种多样&#xff0c;可以直接从网上下载数据集&#xff0c;可以从视频中提取图片&#xff0c;还可以…

使用opencv实现简单的人脸识别

一、opencv模块的使用 1、简介 opencv-python是一个python绑定库&#xff0c;旨在解决计算机视觉问题。使用opencv模块&#xff0c;可以实现一些对图片和视频的操作。 2、安装 安装opencv之前需要先安装numpy, matplotlib。然后使用pip安装opencv库即可。 3、导入 使用im…

opencv实现人脸识别(c++实现)

1 说明 本文章基于opencv VS2015 实现人脸检测 2 效果 可以直接打开摄像头对人脸进行识别&#xff0c;这些标识框也会跟随你的人脸移动。隐私问题&#xff0c;我这里对图片进行了识别。 3 相关类及函数介绍 opencv中文文档 3.1 cv::VideoCapture 官方文档说明 功能 &am…

11 OpenCV图像识别之人脸识别

文章目录 1 Eigenfaces1.1 建模流程1.2 示例代码 2 Fisherfaces2.1 建模流程2.2 示例代码 3 Local Binary Histogram3.1 建模流程3.2 示例代码 OpenCV 提供了三种人脸识别方法&#xff1a; Eigenfaces Eigenfaces是一种基于PCA&#xff08;Principal Component Analysis&#…

OpenCV人脸识别

OpenCV人脸识别与口罩检测 下载文件 人脸检测 人脸检测的检测方法主要有两类:基于知识(根据眼睛,眉毛,嘴巴,鼻子等器官特征及相互几何位置关系来检测)和基于统计(将人脸看作一个二维像素矩阵,通过大量人脸图像样本构造人脸模式空间,由相似度量判断人脸是否存在). 基于知识的…

【OpenCV】 人脸识别

目录 一&#xff1a;前言 二&#xff1a;人脸识别案例 实现步骤及完整代码 步骤1 灰度化处理 步骤2 将灰度图再次进行 行列压缩 步骤3 直方图均值化 步骤4 使用模型 对每一个像素点遍历 图像甄别 人脸识别案例 源码分享 结果测试&#xff1a;可对人脸框选识别 三&…

OpenCv人脸识别开发实战

一、OpenCV简介 OpenCV&#xff08;全称&#xff1a;Open Source Computer Vision Library&#xff09;&#xff0c;是一个跨平台的计算机视觉库。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。 ​ OpenCV用C语言编写&#xff0c;它的主要接口也是C语言&#…

opencv-人脸识别

人脸识别即程序对输入的图像进行判别是否有人脸&#xff0c;并识别出有人脸的图像所对应的人。即我们常说的人脸识别一般包含了人脸检测和人脸识别两部分。下面对其在opencv中的相应模块进行分别介绍。 在opencv官网中&#xff0c;有许多推荐人脸在线数据集&#xff1a;http:/…

基于opencv的人脸识别

目录 一、OpenCV的简介 1、应用场景 二、人脸识别 1、人脸识别简介 2、人脸识别系统基本组成 三、人脸识别流程 四、主要代码注释 1、人脸采集函数 2、人脸训练函数 3、人脸识别函数&#xff08;注取消语音播报识别会流畅多&#xff09; 五、功能实现 六、演示视频…

最简单体验opencv人脸识别

所需软件&#xff1a;PyCharm 所需硬件&#xff1a;一台电脑 如果没有安装PyCharm&#xff0c;csdn上面搜一下安装教程就行&#xff0c;很简单的。 打开PyCharm&#xff0c;如果没有装opencv&#xff0c;则点击最下面的terminal&#xff0c;在终端下输入pip install opencn-p…

基于opencv的人脸识别(适合初学者)

简单易懂的人脸识别&#xff0c;学不会直接跪倒&#xff01; 一、人脸识别步骤 二、直接上代码 &#xff08;1&#xff09;录入人脸.py import cv2face_name cjw # 该人脸的名字# 加载OpenCV人脸检测分类器 face_cascade cv2.CascadeClassifier("D:/BaiduNetdiskDow…

手把手教你opencv做人脸识别(附源码+文档)

文章目录 一、环境二、使用Haar级联进行人脸检测三、Haar级联结合摄像头四、使用SSD的人脸检测五、 SSD结合摄像头人脸检测六、结语 一、环境 pip install opencv-pythonpython3.9 pycharm2020 人狠话不多&#xff0c;直接上代码&#xff0c;注释在代码里面&#xff0c;不说废…

SIFT算法实现图片匹配

SIFT (Scale-Invariant Feature Transform)是David Lowe 在1999发明的一种算法。它在世界范围内&#xff0c;作为图像对齐和对象识别的参考方法。此方法的鲁棒性能够检测场景的不同比例、角度和照明的因素。silx 中可用的实现使用 OpenCL&#xff0c;这意味着它可以在图形处理单…

SIFT

SIFT features Scale Invariant Feature Transform (SIFT) is an approach for detecting and extracting local feature descriptors that are reasonably invariant to change in illumination, image noise, rotation, scaling, and small changes in viewpoint. SIFT是一…

对SIFT算法的理解,尤其是尺度不变性

SIFT算法四大块 1&#xff0c;尺度空间的建立&#xff0c;最难理解的部分&#xff0c;这一步是为了找到极值点的潜在位置 2&#xff0c;极值点精确定位&#xff0c;通过曲线拟合找到极值点的确切位置 3&#xff0c;分配主方向&#xff0c;为特征点赋予一个方向标志&#xff…

第九章三续:SIFT算法的应用--目标识别之Bag-of-words模型

SIFT算法的应用 &#xff0d;目标识别之用Bag-of-words模型表示一幅图像 作者&#xff1a;wawayu&#xff0c;July。编程艺术室出品。 出处&#xff1a;http://blog.csdn.net/v_JULY_v 。 引言 本blog之前已经写了四篇关于SIFT的文章&#xff0c;请参考九、图像特征提取与匹配…

SIFT算法简介

1、 STFT&#xff08;Scale Invariant Feature Transform&#xff09;简介 1.1 SIFT特征检测的步骤1.2 SIFT算法的特点1.3 SIFT算法可以解决的问题 2 、尺度空间 2.1 多分辨率金字塔2.2 高斯金字塔构建示例2.3 高斯尺度空间&#xff08;使用不同的参数&#xff09; 3、DoG空间极…

经典算法研究系列:九、图像特征提取与匹配之SIFT算法

经典算法研究系列&#xff1a;九、SIFT算法研究 作者:July、二零一一年二月十五日。 推荐阅读&#xff1a;David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110---…

SIFT算法原理详解

通过《图像局部不变性特征与描述》学习SIFT&#xff0c;遇到各种Issue&#xff0c;总结了这篇博客和另外九篇博客。感谢关注&#xff0c;希望可以互相学习&#xff0c;不断提升。转载请注明链接&#xff1a;https://www.cnblogs.com/Alliswell-WP/p/SIFT.html 如果想深入研究SI…