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
相关产品推荐
相关产品推荐

