人脸识别功能的实现。
1,下载 “haarcascade_frontalface_default.xml” ,
这个xml文件是opencv在github共享出来普适的人脸特征分类器文件,还有很多用于其他检测特征(如微笑检测,上半身检测)的分类器。
分类器下载链接:https://github.com/opencv/opencv/tree/master/data/haarcascades
找到"haarcascade_frontalface_default.xml",单击。
右击raw按钮,选择从链接另存文件为,后选择自己要保存的路径。
2.编写代码
import cv2
name=input("输入图片文件:")
def detect(filename):
face_cascade = cv2.CascadeClassifier("data/haarcascade_frontalface_default.xml")
img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#传递参数是scaleFactor和minNeighbors,分别表示人脸检测过程中每次迭代时图像的压缩率以及每个人脸矩形保留近邻数目的最小值
#检测结果返回人脸矩形数组
face = face_cascade.detectMultiScale(gray)
for (x, y, w, h) in face:
img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.namedWindow("Face Detected!")
cv2.imshow("Face Detected!", img)
cv2.imwrite("images/Face.jpg", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
detect(name)
特别注意,新手最好使用绝对路径,如:
face_cascade = cv2.CascadeClassifier("G:/python/face/haarcascade_frontalface_default.xml")
效果图如下:
尽力把我躺过的坑填平了,按我的步骤应该不会有问题了。