图像处理基本方法-c语言调用opencv实现人脸检测功能

本文介绍了如何使用C语言结合OpenCV库,通过cvHaarDetectObjects函数检测BMP图像中的人脸。代码示例展示了从加载图像、缩放、人脸检测到绘制矩形框的完整流程,还提供了编译和运行程序的方法。

图像处理基本方法-c语言调用opencv-实现BMP图片中人脸检测功能

使用opencv检测bmp图片中人脸,主要使用cvHaarDetectObjects函数实现。

函数定义

CvSeq* cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade,
CvMemStorage* storage, double scale_factor=1.1,
int min_neighbors=3, int flags=0, CvSize(min_size=cvSize(0,0) ,CvSize max_size=cvSize(0,0));

参数说明

image 被检图像

cascade haar 分类器级联的内部标识形式

storage 用来存储检测到的一序列候选目标矩形框的内存区域。

scale_factor 在前后两次相继的扫描中,搜索窗口的比例系数。例如1.1指将搜索窗口依次扩大10%

min_neighbors 构成检测目标的相邻矩形的最小个数(缺省-1)。如果组成检测目标的小矩形的个数和小于min_neighbors-1 都会被排除。如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框,这种设定值一般用在用户自定义对检测结果的组合程序上。

flags 操作方式。当前唯一可以定义的操作方式是 CV_HAAR_DO_CANNY_PRUNING。如果被设定,函数利用Canny边缘检测器来排除一些边缘很少或者很多的图像区域,因为这样的区域一般不含被检目标。人脸检测中通过设定阈值使用了这种方法,并因此提高了检测速度。

min_size 检测窗口的最小尺寸。缺省的情况下被设为分类器训练时采用的样本尺寸(人脸检测中缺省大小是~20×20)。

具体函数调用

faces = cvHaarDetectObjects(imgTmp, cascade,  storage, 1.5, 4, 0, cvSize(50,50) );

cascade是加载了haarcascade_frontalface_alt2.xml人脸标识的文件。

返回值faces是检测到的人脸信息,包括坐标和宽高信息。

根据faaces中的信息,再利用cvRectangle函数,将人脸的矩形框绘制出来。

代码实现

/*******************************************************
* file:testFace.c
* date:2021-07-17
* version:1.0.0.1
* author:jack8126
* description: bmp file, dectect face
*******************************************************/
#include "cv.h"
#include "highgui.h"
#include "stdio.h"
#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值