qnlytr22 发表于 2026-4-28 04:44:37

[实战教学] OpenCV + Python 实现屏幕目标实时识别

正文内容:各位坛友,大家在掌握了 Python 的基础控制和内存读取后,是不是想做一款更智能的脚本?现在的游戏都有防内存检测,那么“模拟人眼”的视觉自动化就是最好的选择。今天教大家使用 OpenCV 让你的 Python 脚本“看懂”游戏画面。什么是图像模板匹配 (Template Matching)?简单来说,就是把你想找的物体(比如技能图标、血条、BOSS头像)截一张图,存为“模板”,然后让计算机在游戏画面中一帧一帧地对比,找到它所在的位置。1. 环境准备我们需要安装 OpenCV 和辅助库:pip install opencv-python numpy pyautogui2. 核心代码演示下面是一个简单的识别逻辑,检测屏幕上是否存在目标图标:Python

import cv2
import numpy as np
import pyautogui

def find_and_click(template_path):
    # 1. 截取当前屏幕
    screen = pyautogui.screenshot()
    screen = cv2.cvtColor(np.array(screen), cv2.COLOR_RGB2BGR)

    # 2. 读取目标模板
    template = cv2.imread(template_path)
   
    # 3. 模板匹配
    result = cv2.matchTemplate(screen, template, cv2.TM_CCOEFF_NORMED)
   
    # 4. 获取匹配度最高的位置
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
   
    # 设置阈值 (0.8 表示 80% 相似度才判定为找到)
    if max_val > 0.8:
      print(f"找到目标! 位置坐标: {max_loc}")
      return max_loc
    else:
      print("未找到目标。")
      return None

# 使用方法:# find_and_click('skill_icon.png')


3. 进阶玩法学会了这个,你可以实现:
[*]自动练级:通过识别怪物的血条颜色或名称自动攻击。
[*]自动回城:当检测到角色血量过低图标变红时,自动点击回城。
[*]防掉线:检测是否断线重连,自动点击“确定”按钮。
技术提示图像识别对比内存读取,最大的优点是完全绕过游戏进程检测,因为它模拟的是人的操作。但它的难点在于“抗干扰”能力,比如光影变化、UI透明度调整等。这是一个非常有趣的领域,如果你在 OpenCV 坐标转换上遇到问题,或者想知道如何提高识别率,请在下方回复,我会分享我在项目中使用的高级“降噪”算法!

asmprofan 发表于 2026-4-30 19:50:54

感谢分享

YuGnb 发表于 2026-5-5 12:08:14

11111111111111111
页: [1]
查看完整版本: [实战教学] OpenCV + Python 实现屏幕目标实时识别