图像人脸识别代码
时间: 2023-08-06 20:22:14 浏览: 41
以下是一个简单的Python代码示例,用于使用OpenCV库进行人脸识别:
```
import cv2
# 加载人脸识别分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 加载图像
img = cv2.imread('test.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 识别人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 在图像中绘制矩形框
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 显示结果图像
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们使用了OpenCV自带的haar分类器来识别人脸。我们首先将图像转换为灰度图像,然后使用`detectMultiScale`函数来识别人脸。这个函数找到图像中的所有人脸,并返回一个矩形框列表,每个矩形框包含一个人脸的坐标和大小。最后,我们在原始图像上绘制这些矩形框,并显示结果图像。
相关问题
python图像人脸识别代码
以下是一个基于 Python 的人脸识别代码示例:
```python
import cv2
import numpy as np
# 加载Haar级联分类器用于人脸检测
face_cascade = cv2.CascadeClassifier('path/to/haarcascade_frontalface_default.xml')
# 加载训练好的LBPH人脸识别模型
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('path/to/trained_model.yml')
# 读取测试图像
img = cv2.imread('path/to/test_image.jpg')
# 将彩色图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 对每张检测到的人脸进行预测
for (x,y,w,h) in faces:
# 提取人脸ROI(感兴趣区域)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
# 对ROI进行预处理,使其符合模型的输入要求
roi_gray = cv2.resize(roi_gray, (100, 100), interpolation=cv2.INTER_LINEAR)
roi_gray = roi_gray.astype('uint8')
# 进行人脸识别预测
label, confidence = recognizer.predict(roi_gray)
# 根据预测结果进行显示
if label == 0:
cv2.putText(img, "Unknown", (x, y-20), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 2, cv2.LINE_AA)
else:
cv2.putText(img, "Person {}".format(label), (x, y-20), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2, cv2.LINE_AA)
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
# 显示结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,该代码中的 `path/to/haarcascade_frontalface_default.xml` 和 `path/to/trained_model.yml` 分别是 Haar 级联分类器和训练好的 LBPH 人脸识别模型的路径。这两个文件可以在网上找到或者自行训练。另外,代码中的 `label` 和 `confidence` 分别表示预测出的人脸标签和置信度。如果 `label` 为0,则表示未能识别出该人脸。
用python进行图像人脸识别的代码
以下是一个简单的用Python进行图像人脸识别的代码,使用了OpenCV库和Haar Cascade分类器:
``` python
import cv2
# 加载 Haar Cascade 分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 读取图像
img = cv2.imread('test.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 在灰度图像中识别人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
# 在图像中标出人脸
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 显示图像
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
希望能够帮到您!