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

如何用Python OpenCV涂黑游戏截图中的UI元素区域

如何用OpenCV涂黑游戏截图中的UI区域

你可以直接通过操作OpenCV图像矩阵的区域切片来实现涂黑指定UI区域的需求,具体操作如下:

  • 把所有需要处理的UI区域统一存入列表,方便批量遍历处理
  • 对每个UI区域,计算对应的图像矩阵索引范围(注意OpenCV图像的索引顺序是**[行(y), 列(x)]**,对应你定义的top和left参数)
  • 将该区域内的所有像素值设置为黑色(BGR格式下为(0, 0, 0))

完整代码示例

import cv2

# 读取游戏窗口截图
client_window = cv2.imread('client_window.png')

# 定义需要涂黑的UI区域
ui_chatbox = {'left': 0, 'top': 746, 'width': 520, 'height': 167}
ui_minimap = {'left': 878, 'top': 31, 'width': 212, 'height': 207}
ui_inventory = {'left': 849, 'top': 576, 'width': 241, 'height': 337}

# 将UI区域存入列表,方便批量处理
ui_regions = [ui_chatbox, ui_minimap, ui_inventory]

# 遍历每个UI区域,执行涂黑操作
for ui in ui_regions:
    # 计算区域的边界坐标
    x_start = ui['left']
    y_start = ui['top']
    x_end = x_start + ui['width']
    y_end = y_start + ui['height']
    
    # 涂黑该区域(OpenCV图像切片为[y_start:y_end, x_start:x_end])
    client_window[y_start:y_end, x_start:x_end] = (0, 0, 0)

# 可选:保存处理后的图像
cv2.imwrite('game_view_only.png', client_window)

补充说明

  • 如果你的UI坐标有可能超出图像尺寸,可以在赋值前添加边界检查,避免索引错误:
    # 确保坐标在图像范围内
    x_start = max(0, x_start)
    y_start = max(0, y_start)
    x_end = min(client_window.shape[1], x_end)
    y_end = min(client_window.shape[0], y_end)
    
  • OpenCV读取的图像是BGR通道顺序,黑色用(0,0,0)表示,和RGB格式一致,无需额外转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:35:24