告别固定坐标!KeymouseGo图像识别功能让自动化操作更智能
你是否遇到过这样的困扰:录制好的鼠标点击脚本,换了个窗口位置就完全失效?或者因为软件界面更新,按钮位置变了导致自动化流程全部中断?作为一款类似按键精灵的自动化操作工具,KeymouseGo不仅能记录和回放鼠标键盘操作,更通过创新的图像识别功能突破了传统固定坐标的限制,让自动化操作变得更加灵活智能。
从固定坐标到视觉识别:自动化操作的进化
传统的鼠标录制工具普遍采用屏幕坐标定位方式,这种方式最大的问题是位置固定性。当窗口移动、分辨率变化或界面更新时,基于坐标的点击就会完全偏离目标。KeymouseGo的图像识别功能则通过识别屏幕上的图像特征来定位目标位置,实现了真正的视觉智能定位。
项目主界面:KeymouseGo.py实现了软件的核心交互逻辑,包括录制、回放和图像识别功能的入口。
图像识别功能的技术实现
KeymouseGo的图像识别功能主要通过插件系统实现,位于Plugin/目录下。插件接口定义在Plugin/Interface.py中,而插件管理器Plugin/Manager.py负责加载和调度各类插件,包括图像识别插件。
核心实现原理
图像识别功能的工作流程如下:
- 图像采集:通过屏幕截图获取当前界面图像
- 特征匹配:在截图中搜索与目标图像匹配的区域
- 坐标计算:将匹配区域的中心坐标作为点击位置
- 操作执行:通过事件系统执行鼠标点击操作
其中,事件执行部分由Event/UniversalEvents.py和Event/WindowsEvents.py实现,分别对应跨平台和Windows平台的事件处理。
关键代码解析
在事件处理类中,图像识别后的点击操作通过以下逻辑实现:
def execute(self, thd=None):
self.sleep(thd)
if self.event_type == 'EM':
# 检查是否需要图像识别
if isinstance(self.action[0], str) and self.action[0].startswith('image:'):
# 图像识别逻辑,获取目标坐标
target_image = self.action[0].split(':', 1)[1]
x, y = self.find_image_on_screen(target_image)
else:
# 传统坐标处理逻辑
x, y = self.action
# 执行鼠标操作
if self.action_type == 'mouse left down':
pyautogui.mouseDown(x, y, button='left')
# 其他鼠标事件处理...
如何使用图像识别功能
基本使用步骤
- 准备目标图像:截取需要识别的按钮或图标图像,保存为PNG格式
- 编写脚本:在脚本中使用
image:图像路径格式指定图像识别操作 - 运行脚本:KeymouseGo会自动加载图像并进行识别匹配
脚本示例
以下是一个使用图像识别功能的脚本示例:
{
scripts: [
// 等待2秒后,点击"确定"按钮(通过图像识别)
{
type: "event",
event_type: "EM",
delay: 2000,
action_type: "mouse left click",
action: ["image:ok_button.png", 0.8] // 0.8为匹配阈值
}
]
}
脚本语法详细说明可参考项目README.md中的"脚本语法说明"部分。
图像识别功能的应用场景
1. 动态界面自动化
当操作目标位置不固定时(如窗口可拖动、元素位置动态变化),图像识别能确保准确点击目标。
2. 多分辨率适配
在不同分辨率或缩放比例的屏幕上,图像识别依然能准确定位目标,解决了传统坐标方式的分辨率依赖问题。
3. 跨平台兼容
对于不同操作系统或软件版本的界面差异,图像识别提供了更鲁棒的定位方式,减少了平台适配的工作量。
4. 复杂界面操作
在包含大量相似元素的界面中(如表格、列表),图像识别可以精确定位特定元素,实现更复杂的自动化流程。
高级技巧与最佳实践
提高识别成功率的技巧
- 使用清晰的目标图像:确保截取的目标图像清晰,特征明显
- 适当调整匹配阈值:根据实际情况调整匹配阈值(0.6-0.9之间)
- 控制图像大小:目标图像不宜过大,建议只包含关键特征区域
- 处理动态变化:对于会变化的界面元素,使用多模板匹配提高鲁棒性
性能优化建议
- 对于需要频繁识别的场景,可以通过缓存屏幕截图减少重复采集
- 缩小识别区域,只在可能出现目标的区域进行搜索
- 适当降低匹配精度以提高识别速度
总结与展望
KeymouseGo的图像识别功能通过Plugin/Interface.py定义的插件接口,为自动化操作提供了更灵活、更智能的定位方式。它突破了传统固定坐标的限制,使得自动化脚本在面对界面变化时更加健壮。
随着功能的不断完善,未来图像识别将支持更多高级特性,如:
- 多图像组合识别
- 图像旋转和缩放匹配
- 文本识别(OCR)结合图像识别
如果你也在寻找一款既简单又强大的自动化操作工具,不妨尝试KeymouseGo的图像识别功能,体验视觉智能带来的自动化新可能!
项目地址:通过
git clone https://gitcode.com/gh_mirrors/ke/KeymouseGo获取完整代码
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
