SnapMatch 是一个用 C++ 和 OpenCV 精心打造的高性能屏幕图像匹配工具。
厌倦了缓慢或不可靠的屏幕识别?
SnapMatch 旨在快速、精确地在屏幕上定位您关心的图像目标。此外,它还配备了一个简洁易用的 PyQt5 图形界面,让配置和管理匹配任务变得轻而易举。
- 高性能匹配: 核心引擎采用 C++17 编写,充分利用 OpenCV 的图像处理能力,带来毫秒级的匹配响应。
- 并行加速: 内置 OpenMP 支持,可在多核 CPU 上火力全开,进一步提升匹配速度。
- 图形化配置: 告别繁琐的命令行!现代化的 PyQt5 图形界面 (
SnapMatchConfigurator
) 让您轻松管理目标、区域、阈值和样本图片,一切尽在掌握。 - 屏幕捕获: 集成高效的屏幕捕获功能(Windows 下利用 D3D11/DXGI)。
- 详细的日志系统: 助您轻松追踪运行状态,快速定位和解决问题。
- 跨平台潜力: 使用 CMake 构建系统,核心 C++ 代码具备跨平台基础(当前链接库部分可能需要针对非 Windows 平台调整)。
依赖项:
- C++ 编译器: 需要支持 C++17 标准 (例如 GCC, Clang, MSVC)。
- CMake: 版本 >= 3.10。
- OpenCV: 需要预先安装或编译好 OpenCV 库,并在
CMakeLists.txt
中正确配置OpenCV_DIR
路径。CMakeLists.txt
中当前硬编码路径为E:/Users/Shuakami/snapmatch/OpenCV/build
,您需要根据实际情况修改此路径或设置环境变量。
- Python (用于配置工具): Python 3.x。
- PyQt5 & pyautogui (用于配置工具):
setup.py
脚本会尝试自动安装这两个 Python 包。如果自动安装失败,请手动安装:pip install PyQt5 pyautogui
构建步骤:
- 克隆仓库:
git clone https://github.com/shuakami/SnapMatch.git cd snapmatch
- 配置 CMake:
- 确保
CMakeLists.txt
中的set(OpenCV_DIR ...)
指向您正确的 OpenCV 构建目录。 - 创建构建目录并运行 CMake:
(根据您的环境,可能需要指定生成器,例如
mkdir build cd build cmake ..
cmake .. -G "Visual Studio 17 2022"
)
- 确保
- 编译项目:
(或者在 Visual Studio 等 IDE 中打开生成的项目文件并编译)
cmake --build . --config Release
编译成功后,将在 build/Release
(或类似) 目录下生成可执行文件 SnapMatch.exe
(Windows) 或 SnapMatch
(Linux/macOS)。CMake 配置也会尝试将所需的 OpenCV DLL 文件复制到输出目录(Windows)。
-
配置匹配任务:
- 运行 Python 配置工具:
python setup.py
- 在打开的 "SnapMatch 配置管理器" 窗口中:
- 点击 "添加目标" 创建新的匹配任务。
- 在左侧列表中选择目标。
- 在右侧 "基础配置" 选项卡中设置目标名称、匹配阈值。
- 点击 "选择截图区域" 或 "选择识别区域" 按钮,按住鼠标左键在屏幕上拖拽以选择范围。
- 切换到 "样本管理" 选项卡,点击 "添加样本文件" 或 "批量导入样本" 添加用于匹配的模板图片。
- 完成配置后,点击 "保存JSON"。配置将保存在用户目录下的
.snapmatch/config/config.json
文件中。
- 运行 Python 配置工具:
-
运行核心匹配程序:
- 直接执行编译生成的可执行文件:
(根据实际输出路径调整)
./build/Release/SnapMatch.exe
- 核心程序将加载
config.json
中的配置,并开始根据配置进行屏幕匹配。匹配结果和日志将根据Logger.cpp
中的实现进行输出(可能是控制台或文件)。
- 直接执行编译生成的可执行文件:
本项目基于 GNU General Public License v3.0 授权。 详情请参阅 LICENSE