通过人脸识别,操作鼠标跟随人脸(有啥用自己想象)

需要的库

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七层汉堡王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值