news 2026/7/10 12:34:57

python,食指操作翻页

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python,食指操作翻页

<<< 向左挥动: 后退
<<< 向左挥动: 后退
<<< 向左挥动: 后退

向右挥动: 前进
<<< 向左挥动: 后退
<<< 向左挥动: 后退
<<< 向左挥动: 后退
<<< 向左挥动: 后退
<<< 向左挥动: 后退
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
<<< 向左挥动: 后退
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
向右挥动: 前进
<<< 向左挥动: 后退
<<< 向左挥动: 后退

importcv2importmediapipeasmpimportpyautoguiimporttimeimportmath# ================= 配置区域 =================# 动作灵敏度 (0.05 - 0.2 之间,越小越灵敏)SWIPE_THRESHOLD=0.10# 两次动作之间的冷却时间 (秒),防止一次挥动触发多次翻页COOLDOWN_TIME=1.0# 浏览器快捷键映射KEY_BACK=['alt','left']# Chrome 后退 (上一页)KEY_FORWARD=['alt','right']# Chrome 前进 (下一页)# ===========================================classHandController:def__init__(self):# 初始化 MediaPipe Handsself.mp_hands=mp.solutions.hands self.hands=self.mp_hands.Hands(max_num_hands=1,min_detection_confidence=0.7,min_tracking_confidence=0.7)self.mp_draw=mp.solutions.drawing_utils# 状态变量self.prev_x=None# 上一帧的食指尖 X 坐标self.last_action_time=0# 上次触发动作的时间self.action_text=""# 屏幕上显示的提示文字self.action_display_timer=0# 文字显示计时器defdetect_gesture(self,landmarks):""" 检测挥动手势 landmarks: 手部关键点列表 """current_time=time.time()# 获取食指指尖 (关键点 8) 的 X 坐标 (范围 0.0 - 1.0)# 0.0 是屏幕左侧,1.0 是屏幕右侧index_finger_tip=landmarks.landmark[8]curr_x=index_finger_tip.x# 如果还在冷却时间内,只更新坐标,不触发动作ifcurrent_time-self.last_action_time<COOLDOWN_TIME:self.prev_x=curr_xreturnifself.prev_xisnotNone:# 计算移动距离diff_x=curr_x-self.prev_x# 判断移动幅度和方向# 向右挥动 (diff_x > 0) -> 前进ifdiff_x>SWIPE_THRESHOLD:print(">>> 向右挥动: 前进")pyautogui.hotkey(*KEY_FORWARD)self.last_action_time=current_time self.action_text="Next Page >"self.action_display_timer=30# 显示约1秒(30帧)# 向左挥动 (diff_x < 0) -> 后退elifdiff_x<-SWIPE_THRESHOLD:print("<<< 向左挥动: 后退")pyautogui.hotkey(*KEY_BACK)self.last_action_time=current_time self.action_text="< Previous Page"self.action_display_timer=30# 更新上一帧坐标self.prev_x=curr_xdefstart(self):# 打开摄像头cap=cv2.VideoCapture(0)# 设置分辨率 (降低分辨率可以提高处理速度)cap.set(3,640)cap.set(4,480)print("程序已启动!请将焦点切换到 Google Chrome 浏览器。")print("操作说明: 食指快速向左挥动 -> 后退,向右挥动 -> 前进")print("按 'q' 键退出程序")whileTrue:success,img=cap.read()ifnotsuccess:break# 1. 镜像翻转图像 (让画面看起来像照镜子,符合直觉)img=cv2.flip(img,1)# 2. 转换颜色空间 BGR -> RGBimg_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)# 3. 处理手部检测results=self.hands.process(img_rgb)ifresults.multi_hand_landmarks:forhand_lmsinresults.multi_hand_landmarks:# 绘制手部骨架self.mp_draw.draw_landmarks(img,hand_lms,self.mp_hands.HAND_CONNECTIONS)# 检测手势self.detect_gesture(hand_lms)else:# 如果没检测到手,重置位置,防止手重新出现时误判self.prev_x=None# 4. 在屏幕上显示反馈文字ifself.action_display_timer>0:cv2.putText(img,self.action_text,(50,50),cv2.FONT_HERSHEY_SIMPLEX,1,(0,255,0),3)self.action_display_timer-=1# 显示冷却状态iftime.time()-self.last_action_time<COOLDOWN_TIME:cv2.circle(img,(30,30),10,(0,0,255),-1)# 红点表示冷却中else:cv2.circle(img,(30,30),10,(0,255,0),-1)# 绿点表示就绪# 显示图像cv2.imshow("Chrome Hand Controller",img)# 按 'q' 退出ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()if__name__=="__main__":controller=HandController()controller.start()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 21:34:04

Keil5乱码问题根源分析:聚焦工业自动化开发环境

Keil5中文注释乱码问题的根源与工业级解决方案在工业自动化领域&#xff0c;嵌入式开发早已不是少数极客的“个人秀”&#xff0c;而是涉及多团队协作、长期维护和高可靠性要求的系统工程。作为ARM Cortex-M系列微控制器最主流的开发环境之一&#xff0c;Keil MDK&#xff08;尤…

作者头像 李华
网站建设 2026/7/8 8:41:53

RS232串口通信原理图在工业控制中的深度剖析

RS232串口通信原理图在工业控制中的真实价值&#xff1a;从芯片到布线的实战解析你有没有遇到过这样的场景&#xff1f;现场一台老式温控仪表突然不上传数据了&#xff0c;HMI上温度显示“N/A”。你打开调试工具&#xff0c;发现串口完全静默——TXD线上没有一点电平跳动。可设…

作者头像 李华
网站建设 2026/7/2 4:02:06

蜂鸣器驱动原理图解:从信号到声音的转换过程

从一个“嘀”声说起&#xff1a;蜂鸣器是如何把电变成声音的&#xff1f;你有没有想过&#xff0c;当你按下微波炉启动键时那一声清脆的“嘀”&#xff0c;或者洗衣机完成程序后连续两声“滴滴”提醒——这些简单却关键的声音&#xff0c;是怎么从一块小小的电路里发出来的&…

作者头像 李华
网站建设 2026/6/30 10:50:56

淘宝问大家优化:买家语音提问转文字提升可读性

淘宝问大家优化&#xff1a;买家语音提问转文字提升可读性 在移动端购物越来越普及的今天&#xff0c;用户与商品之间的互动方式也正在悄然发生变革。尤其是在“淘宝问大家”这类社区问答场景中&#xff0c;越来越多的买家习惯通过语音快速提出问题——无需打字、操作便捷&…

作者头像 李华
网站建设 2026/7/2 14:40:38

elasticsearch官网下Kibana日志分析系统深度剖析

从零构建企业级日志分析系统&#xff1a;Kibana实战全解 在微服务与云原生架构大行其道的今天&#xff0c;一个线上服务动辄涉及数十个容器实例、上百个API接口。每当系统出现异常&#xff0c;“去哪台机器查日志&#xff1f;”成了运维的第一灵魂拷问。传统的 tail -f | gre…

作者头像 李华
网站建设 2026/7/6 22:57:23

抖音短视频创意:展示Fun-ASR 1秒识别1小时音频

抖音短视频创意&#xff1a;展示Fun-ASR 1秒识别1小时音频 在抖音上刷到一条视频&#xff0c;标题写着“1秒听懂1小时采访”&#xff0c;点进去只见创作者轻点上传按钮&#xff0c;一段长达60分钟的访谈录音瞬间被转写成文字&#xff0c;连标点和数字格式都规整得清清楚楚。评论…

作者头像 李华