OpenCV中的人脸识别通常使用 Haar 特征和 LBP 特征。这里我将解释如何使用 Haar 特征进行特征提取。
Haar 特征是一种基于图像像素值变化的快速特征检测方法,可以用于识别人脸等物体。在 OpenCV 中,可以使用 Haar 特征分类器来检测人脸。
以下是使用 OpenCV 进行 Haar 特征提取的步骤:
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
for (x, y, w, h) in faces:
roi = gray[y:y+h, x:x+w]
features = face_cascade.compute(roi)
# 使用 features 进行后续处理,例如分类或识别
在上面的代码中,face_cascade.compute(roi)
返回一个包含人脸 Haar 特征的矩阵,可以用于后续的分类或识别操作。