You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现屏幕文本变化持续监测,提取游戏护盾、生命值等实时数值

游戏屏幕血条状态持续监测实现方案

需求梳理

你需要实现固定位置的血条状态识别、持续监测、按次输出状态记录,对应两种血条状态的识别结果如下:

  • 满血满盾状态:满血满盾
    输出内容:

    Shield: 100
    Health: 100

  • 护盾剩余82状态:护盾82
    输出内容:

    Shield: 82
    Health: 100

最终要输出连续的状态记录,示例效果:

Shield: 100
Health: 100
Shield: 100
Health: 100
Shield: 100
Health: 99


实现步骤

1. 固定区域屏幕截取

首先定位游戏血条在屏幕上的固定坐标范围(左上角x、y,宽w、高h),每次仅截取该区域画面,降低性能消耗。推荐用mss库实现高速截图,示例代码:

import mss
import numpy as np

# 替换为你实测的血条区域坐标
monitor = {"top": 100, "left": 100, "width": 200, "height": 50}
with mss.mss() as sct:
    # 截取指定区域,转为numpy数组供后续处理
    img = np.array(sct.grab(monitor))

依赖安装命令:pip install mss numpy

2. 血条数值识别

优先用进度条像素占比计算,准确率和速度远高于OCR:

  1. 提前确定护盾条、血量条在截取区域内的y轴范围,以及各自的总长度(像素值)
  2. 提取护盾/血量条所在的行像素,统计填充色(比如蓝色是护盾、红色是血量)的像素数量
  3. 数值=(填充像素数/总长度)* 满值(通常为100),四舍五入取整即可

如果血条是直接显示数字的形式,用OCR识别即可,需要先对截图做预处理提升准确率:

import cv2

# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY)
# 二值化处理,阈值根据实际画面亮度调整
_, binary = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV)

OCR相关依赖安装命令:pip install opencv-python pytesseract easyocr

3. 状态记录与输出

维护上一次的状态值,每次识别完成后按要求输出,也可以写入本地文件持久化存储:

import time

last_shield = 100
last_health = 100
# 采样间隔,单位秒,可根据需求自行调整
interval = 1

while True:
    # 此处替换为你自己实现的截图、数值识别逻辑
    current_shield = get_shield_value(img)
    current_health = get_health_value(img)
    
    # 全量输出每次的状态
    print(f"Shield: {current_shield}")
    print(f"Health: {current_health}")
    
    # 可选:仅数值变化时输出,减少冗余记录
    # if current_shield != last_shield or current_health != last_health:
    #     print(f"Shield: {current_shield}")
    #     print(f"Health: {current_health}")
    #     last_shield = current_shield
    #     last_health = current_health
    
    time.sleep(interval)

优化建议

  • 调整合适的采样频率,普通场景1秒1次足够,既不会漏状态也不会占用过多CPU
  • 如果游戏有反作弊机制,建议用硬件采集卡外接设备的方案实现截图,避免触发游戏检测
  • 识别前固定血条区域的坐标,不要每次全屏搜索,能大幅提升运行效率

内容的提问来源于stack exchange,提问作者user15966297

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:45:03