OpenCV学习:检测图片中是否有人脸
创作时间:
作者:
@小白创作中心
OpenCV学习:检测图片中是否有人脸
引用
CSDN
1.
https://blog.csdn.net/briant_ccj/article/details/85467730
本文将介绍如何使用OpenCV库函数检测图片中是否有人脸。通过简单的几行代码,你将能够实现基本的人脸检测功能。
检测原理
- 通过
CascadeClassifier::load()调用已经训练好的haar+adaboost人脸检测模型,参数就是模型的文件路径。
- 作为初学者,自然是调用OpenCV自带的已经训练好的人脸检测模型。OpenCV提供了4种haar的人脸检测模型。
- 这里调用的是
haarcascade_frontalface_alt.xml。从这里可以看出一个训练好的人脸检测模型是一个xml文件。
- 通过调用
CascadeClassifier::detectMultiScale检测人脸的位置。
待解决的问题
作为初学者,目前仍有下面几个问题待解决:
- 这个模型是怎么训练出来的?
- 从图二可以看到检测出来的效果不是很好的,这个是模型的问题?还是程序的问题?该怎么改进?
代码实现
Mat image = imread("..\\..\\image\\Lena.png", IMREAD_GRAYSCALE);
CascadeClassifier cascade;
double time = (double)getTickCount();
if (!cascade.load("../data/haarcascades/haarcascade_frontalface_alt.xml"))
{
printf("Cascade.load error\r\n");
}
vector<Rect> faces(0);
cascade.detectMultiScale(image, faces, 1.1, 2, 0, Size(30, 30));
if (faces.size() > 0)
{
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(image, faces[i], Scalar(150, 0, 0), 3, 8, 0);
}
}
else
{
printf("No Face\r\n");
}
time = (double)getTickCount() - time;
printf("time used %f", time * 1000 / getTickFrequency());
imshow("image", image);
效果展示
热门推荐
如何规划家庭购房预算?这些预算规划有哪些实际效果和注意事项?
市场调研费用计入什么会计科目?
得了白内障会怎样?白内障的10个症状详细整理分享给大家!早预防,早治疗~
一直放屁肚子胀气是怎么回事
想要提高睡眠质量,最简单的方法是从改变环境开始
西南石油大学不是985不是211,被教育部评为双一流名校
一台主机操作多个显示器的实现方法
电动车刹车调整全攻略
海兔美食探秘:多种做法让你轻松享受美味海鲜大餐
提升目标社会公众参与感的重要策略与实践
NGS检测的目的是什么?
NGS专题 | 聊一聊BGI和Illumina测序平台的差异
光伏组件衰减率检测
个人消费贷款能否用于购房
孔子的思想核心是什么?探索孔子思想的主要理念与影响
骨科手术伤口护理指南
塔罗牌常用爱情牌阵是什么?如何使用塔罗牌进行爱情占卜?
建筑业一般纳税人适用简易计税的情况有哪些?一文掌握
实验室爆炸事故案例分析及预防措施
高薪难求 新媒体生态下汽车主播成销售部“香饽饽”
“良字五行归属揭秘”
缺乏休息会导致头晕和眩晕吗?医生的专业解答来了
-45~70℃,可用于圆柱型锌电池的锁水型共晶电解质
靶向治疗药物:精准医疗时代的抗癌新利器
如何撰写简洁明了的文档以传达信息?这些写作技巧有哪些具体应用?
朱砂莲花与田玉:寓意、象征与文化内涵解析
2025年海军招飞招生简章:附飞行员报名标准及要求、报考指南
饲料加“秘方” 仔猪身体壮
酒精湿巾:电子产品的清洁小助手
物业合同纠纷中的上诉程序