千家信息网

Python如何利用树莓派opencv人脸识别自动控制电脑显示桌面

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍Python如何利用树莓派opencv人脸识别自动控制电脑显示桌面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言自从在咸鱼上淘了一个树莓派3b,尝试做了一下
千家信息网最后更新 2025年01月19日Python如何利用树莓派opencv人脸识别自动控制电脑显示桌面

这篇文章主要介绍Python如何利用树莓派opencv人脸识别自动控制电脑显示桌面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

前言

自从在咸鱼上淘了一个树莓派3b,尝试做了一下内网穿透,搭建网站就吃灰了,接下来突发奇想就买了一个摄像头和延长线

接下来就是敲代码了

环境

  • 树莓派3+ python3.7

  • win7 python3.6

过程

首先树莓派和电脑要在一个内网下面,就是一个路由器下面吧。要在树莓派设置里面开启摄像头,然后安装cv2,cv2有很多依赖库需要手动安装,很是费脑筋。原理介绍一下,人脸识别主要是依赖opencv开源的人脸检测识别分类器,只需要导入就可以了,分类器github下载地址:

https://github.com/opencv/opencv/tree/master/data/haarcascades

把整个项目下载下来解压,找到
haarcascade_frontalface_default.xml文件,把这个文件和脚本文件放在一起就可以了。不想全部下载文章底部有项目地址可以单独下载。用http访问内网网址的方式通知工作的电脑按下win+d,这需要电脑安装一个web服务器,我就用最简单的web.py了,安装web.py的时候要指定版本。

import cv2import timeimport requestscapture = cv2.VideoCapture(0)#获取摄像头对象casc_path = "haarcascade_frontalface_default.xml"faceCascade = cv2.CascadeClassifier(casc_path)color = (0, 255, 0)font = cv2.FONT_HERSHEY_SIMPLEX  end_time=0countdown=0while(True):    #读取一帧图像    ret,frame=capture.read()#第一个返回值是bool值,判断是否有图像,第二个就是图像    if ret:        #转换为灰度图        grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)        faceRects = faceCascade.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 3, minSize = (32, 32))#这是一个数组,可以输出来看一下,有人脸的大小范围的参数        count = str(len(faceRects))         if int(count) > 0:      #大于0则检测到人脸            start_time = time.time()#要判断发送请求的时间间隔,两次间隔不能少于30秒,不然体验很不好            if end_time<1:                requests.get("http://192.168.1.165:8080/")                end_time = time.time()            countdown= int(start_time-end_time)               if start_time-end_time>30:                requests.get("http://192.168.1.165:8080/") #每次重启电脑都要更换内网ip                end_time = time.time()            for faceRect in faceRects: #绘制框框,单独框出每一张人脸                x, y, w, h = faceRect                    cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)                             cv2.putText(frame, "count:"+count, (10, 40), font, 0.8, (0, 255, 255), 2)#添加一个人脸个数的文字显示        #显示图像        cv2.imshow("test", frame)            c = cv2.waitKey(10)#等待退出键        if c & 0xFF == ord('q'):          break

接下来就是让电脑接受http请求了,要让电脑按win+d,需要pyautogui这个库。刚开始还认为需要shell脚本搜了半天,这个web.py这个库也是百度搜索出来的。集齐了各种库,完全体现了python的简单易用,哈哈

# -*- coding: UTF-8 -*-import webimport pyautoguiimport timeurls = (    '/(.*)', 'hello') app = web.application(urls, globals()) class hello:    def GET(self, name):         pyautogui.keyDown('win')        pyautogui.keyDown('d')        pyautogui.keyUp('d')        pyautogui.keyUp('win')        print("执行")        return "go" if __name__ == "__main__":    app.run()

下面就是效果图:

以上是"Python如何利用树莓派opencv人脸识别自动控制电脑显示桌面"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

电脑 人脸 树莓 就是 图像 接下来 摄像头 文件 摄像 桌面 自动控制 控制 内容 地址 篇文章 脚本 项目 分类 检测 不好 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津板材套料软件开发商 怎么打开服务器策略管理 java软件开发自荐信 会考的网络技术是什么方向 频段网络安全标准 数据库中的表对应三级模型中的 北邮国安宽带网络技术 恩施好的软件开发企业 诺基亚网络安全提示怎么关闭 数据库程序设计安全性要求 网络安全审计问题整改情况报告 魅蓝2root访问服务器出错 1.17.1小游戏服务器 嵌入式网络安全审计 数据库vpd技术 监控视频管理服务器套什么定额 无法解析dns服务器 游戏开发与软件开发 浦东新区互联网络技术服务案例 数据库es安全性测试工具 网络安全兴趣小组 网络技术培训品牌 山东附中软件开发 北京纵横网络技术有限公司招聘 可演进知识中心智能网络技术 伊朗网络安全股份 二道区现代化网络安全质量服务 服务器安全配置实践篇 上海生态网络技术零售价格 网络安全治理平台架构图
0