python——esc按键按下与识别

esc按键ASCII码为27,模拟按下esc按键代码如下:

import win32api
import time

win32api.keybd_event(27,0,0,0)
time.sleep(0.1)
win32api.keybd_event(27,0,2,0)

识别esc按键按下代码如下:

import win32api

while True:
	esc = win32api.GetKeyState(27)
	if esc<0:
		print('esc')
### 安装和运行YOLOv8于香橙派5 #### 准备工作 为了确保YOLOv8能够在香橙派5上顺利安装并运行,需先完成一系列准备工作。这包括但不限于硬件准备以及软件环境搭建。 - **硬件准备** - 确认拥有香橙派5设备及其配件。 - **网络连接设置** 可以选择通过网线直连路由器或将香橙派接入Wi-Fi来建立互联网访问路径[^2]。 - **远程开发工具配置** 使用VSCode配合SSH协议实现对香橙派的有效管理编程支持;也可选用其他类似的IDE或终端模拟器如Xshell进行远程命令执行。 #### Python环境构建 进入Linux系统的命令行界面后,按照如下步骤创建适合YOLOv8工作的虚拟环境: ```bash sudo apt update && sudo apt upgrade -y sudo apt install python3-pip git -y pip3 install virtualenv virtualenv venv_yolo --python=python3 source ./venv_yolo/bin/activate ``` 上述指令用于更新系统包列表、安装必要的Python组件,并设立独立的Python解释器实例以便隔离项目依赖关系[^1]。 #### YOLOv8框架获取初始化 借助Git克隆官方仓库至本地文件夹内,随后依据文档指引完成剩余部分的基础设定: ```bash git clone https://github.com/ultralytics/ultralytics.git cd ultralytics/ pip install -r requirements.txt ``` 此段脚本负责下载最新版的YOLOv8源码库,并依照清单自动拉取所需的第三方模块集合。 #### USB摄像头兼容性检验 针对计划使用的外接摄像装置开展初步的功能测试,确认其能否被操作系统正常识别及调用: ```python import cv2 cap = cv2.VideoCapture(0) if not cap.isOpened(): print("Cannot open camera") else: while True: ret, frame = cap.read() if not ret: break gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray_frame) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 该程序片段展示了利用OpenCV库捕捉来自默认视频输入流的画面帧,并将其转换成灰度图像形式展示给用户直至按下`'q'`键终止循环。 #### 执行目标检测任务 最后,在已经准备好的一切条件下启动基于CPU/GPU/NPU的不同模式下的YOLOv8推理流程。这里给出了一种通用的方法论——采用PyTorch作为后台引擎驱动ONNX格式导出后的轻量化模型实施预测作业: ```python from ultralytics import YOLO model_path = "path/to/best.onnx" imgsz=(640, 640) # 加载预训练权重文件 model = YOLO(model_path).to("cpu") # 或者 'cuda'/'npu' while True: success, img = cap.read() results = model(img)[0] for result in results.boxes.data.tolist(): x1, y1, x2, y2, score, class_id = result if score > 0.5: cv2.rectangle(img,(int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), thickness=2) cv2.imshow("Detected Objects", img) k = cv2.waitKey(1) if k%256==27:#ESC按键退出 break cv2.destroyAllWindows() ``` 这段代码实现了从加载自定义训练好的YOLOv8 ONNX模型开始,直到遍历所有可能的对象边界框并将它们绘制出来为止的一系列操作逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值