Skip to content

A high-performance screen image matching tool built with C++/OpenCV, featuring a PyQt5 GUI configurator.

Notifications You must be signed in to change notification settings

shuakami/SnapMatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnapMatch

License: GPL v3 C++ Python CMake

SnapMatch 是一个用 C++ 和 OpenCV 精心打造的高性能屏幕图像匹配工具。

厌倦了缓慢或不可靠的屏幕识别?

SnapMatch 旨在快速、精确地在屏幕上定位您关心的图像目标。此外,它还配备了一个简洁易用的 PyQt5 图形界面,让配置和管理匹配任务变得轻而易举。

✨ 功能特性

  • 高性能匹配: 核心引擎采用 C++17 编写,充分利用 OpenCV 的图像处理能力,带来毫秒级的匹配响应。
  • 并行加速: 内置 OpenMP 支持,可在多核 CPU 上火力全开,进一步提升匹配速度。
  • 图形化配置: 告别繁琐的命令行!现代化的 PyQt5 图形界面 (SnapMatchConfigurator) 让您轻松管理目标、区域、阈值和样本图片,一切尽在掌握。
  • 屏幕捕获: 集成高效的屏幕捕获功能(Windows 下利用 D3D11/DXGI)。
  • 详细的日志系统: 助您轻松追踪运行状态,快速定位和解决问题。
  • 跨平台潜力: 使用 CMake 构建系统,核心 C++ 代码具备跨平台基础(当前链接库部分可能需要针对非 Windows 平台调整)。

🚀 安装与构建

依赖项:

  1. C++ 编译器: 需要支持 C++17 标准 (例如 GCC, Clang, MSVC)。
  2. CMake: 版本 >= 3.10。
  3. OpenCV: 需要预先安装或编译好 OpenCV 库,并在 CMakeLists.txt 中正确配置 OpenCV_DIR 路径。
    • CMakeLists.txt 中当前硬编码路径为 E:/Users/Shuakami/snapmatch/OpenCV/build,您需要根据实际情况修改此路径或设置环境变量。
  4. Python (用于配置工具): Python 3.x。
  5. PyQt5 & pyautogui (用于配置工具): setup.py 脚本会尝试自动安装这两个 Python 包。如果自动安装失败,请手动安装:
    pip install PyQt5 pyautogui

构建步骤:

  1. 克隆仓库:
    git clone https://github.com/shuakami/SnapMatch.git
    cd snapmatch
  2. 配置 CMake:
    • 确保 CMakeLists.txt 中的 set(OpenCV_DIR ...) 指向您正确的 OpenCV 构建目录。
    • 创建构建目录并运行 CMake:
      mkdir build
      cd build
      cmake ..
      (根据您的环境,可能需要指定生成器,例如 cmake .. -G "Visual Studio 17 2022")
  3. 编译项目:
    cmake --build . --config Release
    (或者在 Visual Studio 等 IDE 中打开生成的项目文件并编译)

编译成功后,将在 build/Release (或类似) 目录下生成可执行文件 SnapMatch.exe (Windows) 或 SnapMatch (Linux/macOS)。CMake 配置也会尝试将所需的 OpenCV DLL 文件复制到输出目录(Windows)。

使用方法

  1. 配置匹配任务:

    • 运行 Python 配置工具:
      python setup.py
    • 在打开的 "SnapMatch 配置管理器" 窗口中:
      • 点击 "添加目标" 创建新的匹配任务。
      • 在左侧列表中选择目标。
      • 在右侧 "基础配置" 选项卡中设置目标名称、匹配阈值。
      • 点击 "选择截图区域" 或 "选择识别区域" 按钮,按住鼠标左键在屏幕上拖拽以选择范围。
      • 切换到 "样本管理" 选项卡,点击 "添加样本文件" 或 "批量导入样本" 添加用于匹配的模板图片。
      • 完成配置后,点击 "保存JSON"。配置将保存在用户目录下的 .snapmatch/config/config.json 文件中。
  2. 运行核心匹配程序:

    • 直接执行编译生成的可执行文件:
      ./build/Release/SnapMatch.exe
      (根据实际输出路径调整)
    • 核心程序将加载 config.json 中的配置,并开始根据配置进行屏幕匹配。匹配结果和日志将根据 Logger.cpp 中的实现进行输出(可能是控制台或文件)。

许可证

本项目基于 GNU General Public License v3.0 授权。 详情请参阅 LICENSE

About

A high-performance screen image matching tool built with C++/OpenCV, featuring a PyQt5 GUI configurator.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published