news 2026/9/2 3:00:10

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/9/2 12:05:09

基于PLC的城市智能交通灯三路口控制系统设计

摘要 可编程控制器(Programmable Logic Controller)简称PLC。是一种综合了通讯、自动控制和计算机技术发展而来的主要用于工业生产的自动控制系统。PLC运用数字运算操作系统,采用可编程序存储器,来于储存内部程序。执行逻辑运算、定时控制、顺序控制、计…

作者头像 李华
网站建设 2026/9/2 1:34:45

Android Compose 基础系列:您的第一个 Kotlin 程序

简介Kotlin 是一门现代、简洁、安全的编程语言,由 JetBrains 开发,并被 Google 作为 Android 官方首选语言。它可以与 Java 完美互操作,并支持跨平台开发,是现代 Android 开发的首选。🛠️ Kotlin 的主要用途✅ Androi…

作者头像 李华
网站建设 2026/9/3 0:01:24

BurpSuite工具HaE插件好用正则收集

0. 如何使用HaE HaE 主要由三块部分组成: Rules(规则信息管理):管理匹配特定信息的正则表达式 Config(配置信息管理):配置文件和忽略后缀名的管理 Databoard(数据集合面板):对匹配到的信息进行集中查询和管理 先说 Rules 规则信息管理,我们点击 Add ,界面如下: 通…

作者头像 李华
网站建设 2026/9/1 5:07:59

系统编程—线程的互斥与同步

线程的互斥和同步是多线程编程的核心问题,用于解决资源竞争和执行时序协调的问题,确保多线程程序的正确性、稳定性和可预测性。核心概念铺垫临界区(Critical Section):多个线程共享的资源(如全局变量、硬件…

作者头像 李华
网站建设 2026/9/2 18:20:01

解锁本地大模型推理性能:llama.cpp动态批处理实战指南

解锁本地大模型推理性能:llama.cpp动态批处理实战指南 【免费下载链接】llama.cpp Port of Facebooks LLaMA model in C/C 项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp 你是否遇到过这样的场景?当多个用户同时访问你的本地大模型…

作者头像 李华
网站建设 2026/9/2 11:58:36

【干货收藏】RAG分块策略全解析:7种方法提升大模型效果的实战指南

文章详解了RAG系统中提升效果的关键环节——分块(Chunking)策略,系统介绍了固定大小、语义、递归、文档、智能体、句子和段落七种主流分块方法,分析其优缺点与应用场景。实践建议从512 tokens搭配10-15%重叠率起步,优先采用递归和句子分块&am…

作者头像 李华