写一份python代码,识别图中人脸并展示标注
时间: 2023-08-16 07:08:19 浏览: 78
好的,我可以提供一个基于Python的人脸识别代码,使用OpenCV和Dlib库来实现。以下是代码:
```python
import cv2
import dlib
# 加载Dlib的人脸检测器模型
detector = dlib.get_frontal_face_detector()
# 加载Dlib的人脸关键点检测模型
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 加载OpenCV的图像读取函数
img = cv2.imread("image.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 在灰度图像上运行人脸检测器
faces = detector(gray)
# 遍历每一个人脸
for face in faces:
# 获取人脸的关键点
landmarks = predictor(gray, face)
# 绘制人脸区域
x, y, w, h = face.left(), face.top(), face.width(), face.height()
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 绘制人脸关键点
for i in range(68):
x, y = landmarks.part(i).x, landmarks.part(i).y
cv2.circle(img, (x, y), 2, (0, 0, 255), -1)
# 显示图像
cv2.imshow("Face Detection", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在以上代码中,我们首先加载了Dlib的人脸检测器和人脸关键点检测模型,然后使用OpenCV读取了一张图像。接下来,我们将其转换为灰度图像,并在灰度图像上运行人脸检测器。对于每一个检测到的人脸,我们获取其关键点,并在图像上绘制人脸区域和关键点。最后,我们显示结果图像。
你可以将以上代码保存为一个Python文件,然后运行它来进行人脸识别。不过需要注意的是,在运行代码之前,你需要下载Dlib的人脸检测器和人脸关键点检测模型,并将其保存在合适的路径下。
阅读全文