在网上复制粘贴了如下的人脸识别代码,准备在pycharm上面运行一下。
import cv2
# 加载预训练的人脸级联分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 读取图像
img = cv2.imread('face.jpg')
# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用级联分类器检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 为每个检测到的人脸绘制一个矩形
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 显示结果
cv2.imshow('Faces found', img)
cv2.waitKey(0)
但运行之后出错了。
网上查阅资料。
应该是haarcascade_frontalface_default.xml的路径错了。修改为如下,就可以正确运行了。
import cv2
# 加载预训练的人脸级联分类器D:
face_cascade = cv2.CascadeClassifier('\\Python\\venv\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')
# 读取图像
img = cv2.imread('6.png')
# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用级联分类器检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 为每个检测到的人脸绘制一个矩形
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 显示结果
cv2.imshow('Faces found', img)
cv2.waitKey(0)