# Author:Winter Liu is coming! import cv2 as cv import numpy as np def face_dect(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # opencv在GitHub上共享出来的具有普适的训练好的数据 face_detector = cv.CascadeClassifier(r"C:\PycharmProjects\OpenCV\haarcascade_frontalface_default.xml") # 第二个参数是尺度变换,就是向上或者向下每次是原来的多少倍 # 第三个参数是人脸检测次数,设置越高,误检率越低 faces = face_detector.detectMultiScale(gray, 1.1, 3) # print(len(faces)) # print(faces.shape) for x, y, w, h in faces: cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2) cv.imshow("face_detect", image) def video_face_detect(): capture = cv.VideoCapture(0) while 1: ret, frame = capture.read() # 图像水平翻转 frame = cv.flip(frame, 1) # 检测视频结束 if ret == False: break face_dect(frame) c = cv.waitKey(10) if c == 27: break # src = cv.imread(r"C:\PycharmProjects\OpenCV\pic\family2.jpg") # cv.imshow("original_pic", src) video_face_detect() cv.waitKey(0) cv.destroyAllWindows()