简介:opencv不仅可以进行手势识别,源代码的副本中还有一个文件夹data/haarcascades,该文件夹包括了所有opencv的人脸检测的xml文件,这些文件可用于检测静止图像,视频和摄像头所得到图像中的人脸。
分类器所在路径一般为:项目目录\venv\Lib\site-packages\cv2\data\haarcascadexxxxxx.xml
注意:
针对不同的场景需要设置不同的框才能调试出比较合适的结果。
源码:
import cv2.cv2 as cv2
def face_recognition():
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_detector = cv2.CascadeClassifier(
r"D:XXXXXX\venv\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
face = face_detector.detectMultiScale(image=gray, scaleFactor=1.1, minNeighbors=5, flags=0, minSize=(100, 100),
maxSize=(300, 300))
# scaleFactor 缩放因子
for x, y, w, h in face:
cv2.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
cv2.imshow("result", img)
img = cv2.imread(r"D:\ManyPeople.png") # 读取图片
# img = cv2.imread(r"D:\groupPhoto.png") # 读取图片
face_recognition()
while True:
if ord("q") == cv2.waitKey(0):
break
cv2.destroyAllWindows()
运行效果:
ps:最靓的仔容易识别失败。
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!