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

pyautogui.locateOnScreen无法定位图片,尺寸超出范围报错求助

解决PyAutoGUI定位图片时的"needle dimension exceed haystack"错误

这个错误的核心原因很明确:你要定位的stickman.png图片的宽度或高度,超过了搜索区域(或整个屏幕)的尺寸,导致无法在目标范围内完成匹配。

以下是具体的解决步骤:

  • 检查目标图片尺寸
    打开stickman.png,查看它的分辨率(用系统自带图片查看器、画图工具都能看)。对比你的屏幕分辨率,或者你代码里曾经用过的region=(150,175,350,600)区域(该区域宽350、高600),如果图片的宽/高大于对应数值,就会触发这个错误。

  • 调整目标图片尺寸
    把stickman.png裁剪或缩小到合理尺寸,确保它的宽和高都小于你要搜索的屏幕区域(或整个屏幕)的尺寸。比如你的屏幕是1920×1080,那图片尺寸不能超过这个数值;如果用region参数,要保证图片宽<350、高<600。

  • 验证搜索范围与图片的适配性
    你当前代码默认搜索整个屏幕,可先打印屏幕尺寸确认:

    import pyautogui
    print(pyautogui.size())  # 输出屏幕的宽和高
    

    把这个结果和stickman.png的尺寸对比,确保图片更小。

  • 额外排查点

    • 确认stickman.png的文件路径正确,代码能找到它——可以尝试用绝对路径测试,比如pyautogui.locateOnScreen(r'C:\Users\win0908\Desktop\PY\stickman.png', confidence=0.8)。
    • 如果之前使用region参数出错,检查参数格式是否为(left, top, width, height),别把宽高顺序搞反。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:43:19