📅  最后修改于: 2023-12-03 15:36:32.704000             🧑  作者: Mango
OpenCV-Python 是一个基于 OpenCV(开源计算机视觉库)的 Python 库,包含了许多用于图像处理的有用工具和函数。 Cascade Classifier 是 OpenCV 中的一个框架,用于检测人脸、车牌等目标,数据存储在 .xml 文件中。
在本文中,我们将介绍如何使用 OpenCV-Python 的 Cascade Classifier 进行人脸检测。
首先,我们需要安装 OpenCV-Python。可以使用 pip 命令来安装:
pip install opencv-python
接下来,我们需要导入 OpenCV 库和 Matplotlib 库(用于显示图像)。
import cv2
from matplotlib import pyplot as plt
现在,我们需要从 OpenCV 的 Github 仓库中下载一个分类器 XML 文件,该文件存储有关人脸检测的算法和其他相关数据。
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
接下来,我们要加载待检测目标的图像。我们可以使用 cv2.imread 函数加载图像,并将其显示出来。
img = cv2.imread('test.jpg')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
灰度图像比彩色图像计算量小。因此,我们将图像转换为灰度图像。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray, cmap='gray')
plt.show()
我们将使用 detectMultiScale 函数来检测图像中的人脸,这个函数将返回人脸的坐标、大小、宽度和高度等信息。
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
最后,我们要在检测到的每个人脸周围绘制一个矩形边框,并将结果显示出来。
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
这就是使用 OpenCV-Python 的 Cascade Classifier 进行人脸检测的完整过程。