注:这个人脸识别,仅仅是调用了接口,并不是我们想象的那样。
import cv2 as cv
import numpy as np
def face_detect_demo(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # 灰度,全部是灰度基础上查找
face_detector = cv.CascadeClassifier(r"C:\Program Files\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml") # 级联检测器,斜杠要改
faces = face_detector.detectMultiScale(gray, 1.1, 2) # 多个尺度空间进行,gray图像,1.1尺度变化 2检测到2个方框表示是人脸,设置高要求像素高,检测不出设置低
for x, y, w, h in faces:
cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2) # 0,0 255 红色 ,线宽2
cv.imshow("result", image)
print("--------- Python OpenCV Tutorial ---------")
capture = cv.VideoCapture(0)
#cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.namedWindow("result", cv.WINDOW_AUTOSIZE)
while(True):
ret, frame = capture.read()
frame = cv.flip(frame, 1)
face_detect_demo(frame)
c = cv.waitKey(10)
if c == 27: # ESC
break