本文利用OpenCV库的内置函数HaarCascade分类器进行人脸检测。为了训练分类器,HaarCascade函数需要多幅没有人脸的图像,也需要多幅有人脸的图像。然后通过计算图像的白、黑矩形像素之和的差值来提取特征。最后,级联分类器通过只关注突出的目标区域并排除周围特征来加速检测和分类过程。
人脸检测步骤:
1.导入OpenCV库
2.导入操作系统
3.提供包含多张图片数据的工作文件夹路径。
4.使用内置函数‘CascadeSorfier’,该函数读取存储在Data文件夹中的‘haarcasade_front tface_default.xml’文件。此文件具有一组可用于检测正面的功能。
5.For循环负责对每个图像重复两个操作,即图像读取和颜色到灰度的转换。
6.在for循环内部,第一个变量是‘img’,它从格式为‘USER.0’的工作文件夹中读取每个图像。
7.接下来,由于其处理速度快、执行时间短的优点,每幅图像都被转换成灰度级。
8.检测多尺度函数从对象‘face_casade’中提取特征,并使用它们来获取新图像的特征。这需要三个论点。第一个是灰色的。第二个是“scale_factor”,它使用提供的比例缩小每个图像的大小。第三个论点是“minNeighbors”。它指示每个矩形保留的邻域数量
9.第二个for循环用于形成矩形并显示图像。“DetectMultiscale”返回四个参数,即x、y、w和h。
10.给矩形函数指定了五个参数。
A.img
B.x&y=图像的坐标。
C.x+w和y+h=用于形成矩形,其中w和h分别表示宽度和高度。
d.(255,0,0)=BGR格式。矩形将以蓝色显示
E.2=矩形厚度
11.显示图像
12.函数等待指定时间
13.销毁所有打开的输出窗口
代码:
输出:
参考文献:
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/13/%e5%88%a9%e7%94%a8opencv%e5%ae%9e%e7%8e%b0%e4%ba%ba%e8%84%b8%e6%a3%80%e6%b5%8b/