import pyautogui
print (pyautogui.locateCenterOnScreen("C:\Users\Venkatesh_J\PycharmProjects\mouse_event\mouse_event.png"))
它返回的不是坐标,而是 None
。
import pyautogui
print (pyautogui.locateCenterOnScreen("C:\Users\Venkatesh_J\PycharmProjects\mouse_event\mouse_event.png"))
它返回的不是坐标,而是 None
。
PrtScn
? - Xantium似乎在屏幕上找不到与您的图像匹配的任何内容。
locateCenterOnScreen(image, grayscale=False)
- 返回屏幕上第一个找到的图像实例的中心点坐标(x,y)。如果在屏幕上找不到,返回None。
None
。另外 - 奖励提供者说:“图片在我的桌面上”。我想知道这是否意味着文件图标在桌面上而不是实际图片被显示 - 可能有误解... - J Richard SnapeNone
而不是它所说的坐标(文档中)。当您使用此函数时,将文件名作为字符串传递。然后库会加载图像文件并在屏幕上查找图像(而不是文件名)。如果可见,则"图片在我的桌面上"
pyautogui.locatecentreonscreen()
将寻找实际图像。它不会寻找桌面上的文件或与传递给它的图像名称相同的文件图标。
flower.jpg
的文件,其中包含以下图片。
没有其他窗口打开时,请运行以下命令:coords = pyautogui.locateCenterOnScreen('C:\\Richard\\Users\\flower.jpg')
print(coords)
无
。flower.jpg
的图标。即使该图标是花的缩略图,这也是正确的。524,621
。完全相同的
图片。有时候我们需要寻找相似的
图片。 - GLHFpyscreeze
- 代码在这里 - 用于 locate 函数。看看那里的代码,必须是精确匹配,而不是缩放版本或“类似”。我不知道是否有类似的库进行模糊或“类似”的匹配,但您可以分两步完成。一种选择是拍摄屏幕截图(例如使用 autopygui
),然后使用 openCV
进行匹配- http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html - J Richard Snape你确定图片的大小和图标一样吗?
如果不是,pyautogui.locateCenterOnScreen()
会引发 TypeError: 'NoneType' object is not iterable
同时确保完整的图标可见,并且看起来与图片相同:"C:\Users\Venkatesh_J\PycharmProjects\mouse_event\mouse_event.png"
希望问题得到解决!
pyautogui.locateCenterOnScreen()
也会受到影响。例如:如果您使用显示器拍摄了截图,然后在使用不同的显示器或笔记本电脑时进行比较。在大多数情况下,原始屏幕大小必须完全相同,包括浏览器等自动调整大小的情况。所以,是的,这在一开始也困扰了我几次。 - JayRizzopyautogui.locateCenterOnScreen()
,请尝试使用剪切工具(如果您使用的是Windows系统)来截取屏幕截图。这样可以解决问题。
另外,请确保您已经下载了"Pillow"模块。pyautogui.locateCenterOnScreen("yourscreenshot.PNG", confidence=0.9)
我相信置信度范围在0.1-0.9之间。 除非你有几张几乎相同的图片,这可能会解决异常情况。 如果这不起作用,请尝试使用更多/少一些原始图像的第二个截图,并编写此代码:
try:
pyautogui.locateCenterOnScreen("yourscreenshot.PNG", confidence=0.9)
except TypeError:
pyautogui.locateCenterOnScreen("yourscreenshot2.PNG", confidence=0.9)
这将使用略有不同的图片再次尝试,希望不会返回 TypeError。
没有必要截屏,你可以默认调整置信度参数,它只会返回图像是否完全匹配。你可以做的是
pic_location = pyautogui.locateOnScreen("edge-pic.png",confidence=0.9)
但是为了做到这一点,您需要导入opencv-python包 使用命令。
pip install opencv-python
None
,如唐的回答所述,您将收到此错误消息。请注意,在代码运行时,图像必须对用户可见。它不会找到桌面上的图标或类似物,也不会找到隐藏在其他窗口后面的图像。这是你想做的吗? - J Richard Snape