news 2026/5/8 9:17:46

SOP实时侦测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SOP实时侦测系统

上图先

# -*- coding: utf-8 -*- import cv2 import mediapipe as mp import numpy as np import time import sys import os import tempfile import subprocess # 解决中文显示问题 - 使用Pillow确保中文正确显示 def cv2_puttext_chinese(img, text, position, font_scale, color, thickness): """ 使用Pillow库在OpenCV图像上显示中文 """ try: from PIL import Image, ImageDraw, ImageFont # 确保颜色格式正确 if isinstance(color, tuple) and len(color) == 3: # OpenCV是BGR格式,需要转换为RGB color_rgb = (color[2], color[1], color[0]) else: color_rgb = (255, 255, 255) # 将OpenCV图像转换为PIL图像 img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) draw = ImageDraw.Draw(img_pil) # 确定字体大小 font_size = int(font_scale * 20) # 调整比例以匹配cv2.putText # 尝试使用系统中常见的中文字体 font_paths = [ "C:/Windows/Fonts/simhei.ttf", # 黑体 "C:/Windows/Fonts/msyh.ttc", # 微软雅黑 "C:/Windows/Fonts/msyhbd.ttc", # 微软雅黑粗体 "C:/Windows/Fonts/simsun.ttc", # 宋体 "C:/Windows/Fonts/arial.ttf", # 英文备选 ] font = None for font_path in font_paths: try: if os.path.exists(font_path): font = ImageFont.truetype(font_path, font_size) break except Exception: continue # 如果没有找到合适的字体,使用默认字体 if font is None: font = ImageFont.load_default() # 绘制中文文本 draw.text(position, text, font=font, fill=color_rgb) # 转换回OpenCV格式 img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR) return img except ImportError: # 如果PIL不可用,使用简单的英文替代 english_map = { "右手抹鼻子": "Right hand to nose", "左手摸头发": "Left hand to hair", "双手击掌": "Hands clap", "SOP完成!": "SOP Complete!", "剩余时间": "Time left", "秒": "s" } for chinese, english in english_map.items(): text = text.replace(chinese, english) cv2.putText(img, text, position, cv2.FONT_HERSHEY_SIMPLEX, font_scale, color, thickness, cv2.LINE_AA) return img except Exception as e: # 其他错误情况下,使用英文替代 english_map = { "右手抹鼻子": "Right hand to nose", "左手摸头发": "Left hand to hair", "双手击掌": "Hands clap", "SOP完成!": "SOP Complete!", "剩余时间": "Time left", "秒": "s" } for chinese, english in english_map.items(): text = text.replace(chinese, english) cv2.putText(img, text, position, cv2.FONT_HERSHEY_SIMPLEX,
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 13:17:10

【Android】基于SurfaceControlViewHost实现跨进程渲染

1 前言 ​ 本文将介绍基于 SurfaceControlViewHost 实现跨进程渲染普通 View 和 GlSurfaceView,力求用最简单的 Demo,介绍 SurfaceControlViewHost 的应用,方便读者轻松扣出核心代码应用到自己的业务中。 ​ 核心代码片段如下。 ​ 1&#x…

作者头像 李华
网站建设 2026/5/6 13:17:04

XCOM V2.6串口调试工具完整使用指南

XCOM V2.6串口调试工具完整使用指南 【免费下载链接】XCOMV2.6正点原子串口调试工具最新版 XCOM V2.6是一款由正点原子开发的串口调试工具,专为嵌入式开发人员和电子爱好者设计。该版本在原有功能的基础上进行了多项修复和优化,提升了用户体验和软件稳定…

作者头像 李华
网站建设 2026/5/7 18:09:57

专业鼠标性能评测:MouseTester助你精准掌控输入设备表现

专业鼠标性能评测:MouseTester助你精准掌控输入设备表现 【免费下载链接】MouseTester 项目地址: https://gitcode.com/gh_mirrors/mo/MouseTester MouseTester是一款专业的鼠标性能评测工具,能够将主观的鼠标使用体验转化为客观的量化数据&…

作者头像 李华
网站建设 2026/5/6 13:18:05

Vue的生命周期到底是个啥?

vue的生命周期到底是什么?这里举一个例子,人的一生有出生到死亡的过程,vue也有产生到销毁的过程vue的生命周期就是vue组件创建到销毁的过程,即vue的一生在vue中,主要包含8个生命周期钩子生命周期钩子生命周期函数生命周…

作者头像 李华