栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

需要的库

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号