人脸对齐python
时间: 2023-12-05 10:41:19 浏览: 46
以下是使用OpenCV和Python进行人脸对齐的示例代码:
```python
import cv2
import numpy as np
读取图像
img = cv2.imread('test.jpg')
# 加载人脸检测器
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 检测人脸
faces = face_detector.detectMultiScale(img, 1.3, 5)
# 如果检测到人脸
if len(faces) > 0:
# 取第一个人脸
(x, y, w, h) = faces[0]
# 裁剪人脸区域
face = img[y:y+h, x:x+w]
# 缩放到指定大小
face = cv2.resize(face, (200, 200))
# 灰度化
gray = cv2.cvtColor(face, cv2.COLOR_BGR2GRAY)
# 直方图均衡化
gray = cv2.equalizeHist(gray)
# 人脸对齐
face_aligned = cv2.createFisherFaceRecognizer().predict(gray)
# 将对齐后的人脸放回原图
img[y:y+h, x:x+w] = face_aligned
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码首先使用OpenCV的人脸检测器检测图像中的人脸,然后对检测到的第一个人脸进行裁剪、缩放、灰度化和直方图均衡化处理,最后使用Fisher人脸识别器对齐人脸,并将对齐后的人脸放回原图中显示出来。