需要的库
pip install opencv-python
pip install xlib
pip install pyautogui
import cv2 as cv
import pyautogui
def face_detect_demo(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
face_detector = cv.CascadeClassifier("./haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=2, minSize=(50, 50))
for x, y, w, h in faces:
cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
pyautogui.moveTo(x + w / 2, y + h / 2)
cv.imshow("result", image)
capture = cv.VideoCapture(0) # 其中的0表示电脑中的第一个相机
cv.namedWindow("result", cv.WINDOW_AUTOSIZE)
while (True):
# 按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵。
ret, frame = capture.read()
# cv.flip函数表示图像翻转,沿y轴翻转, 0: 沿x轴翻转, <0: x、y轴同时翻转
frame = cv.flip(frame, 1)
face_detect_demo(frame)
# waitKey()方法本身表示等待键盘输入,参数是1,表示延时1ms切换到下一帧图像,对于视频而言;
c = cv.waitKey(2)
if c == 27: # 当键盘按下‘ESC’退出程序
# 释放摄像头资源
capture.release()
break
# cv.waitKey(0)参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;
# cv.waitKey(0)
cv.destroyAllWindows() # 作用是能正常关闭绘图窗口
执行后鼠标就会自动的锁定到图像识别到的人脸。
嘿嘿如果移动过去之后自动点击。那。。。。。
模型文件github自取 地址https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml