2

我正在编写一个与电脑交互的机器人。简而言之,我所做的是:

- 截取屏幕截图 - 识别此屏幕截图上的对象(使用 cv2 matchTemplate)
- 使用找到的位置进行一些鼠标操作(例如:将鼠标指针移动到在前一点找到的图标上) -
从第一点重新开始

现在,我必须与屏幕上移动的某些对象进行交互,所以我需要一种快速截屏的方法,或者另一种方法来完成这项工作,我该怎么办?

4

1 回答 1

2

您可以使用模块PyAutoGUI

它有截图功能:

pyautogui.screenshot('my_screenshot.png')

鼠标移动和点击:

pyautogui.moveTo(100, 200)
pyautogui.click()

屏幕上的基本图像位置:

button_location = pyautogui.locateOnScreen('button.png')

因此,如果您想单击屏幕上的某个图像,您可以运行:

x, y = pyautogui.locateCenterOnScreen('form_button.png') # Gets coords of center of image
pyautogui.click(x, y)

正如他们网站上所说:

在 1920 x 1080 屏幕上,定位函数调用大约需要 1 或 2 秒。这对于动作视频游戏来说可能太慢了,但适用于大多数用途和应用程序。

所以请记住这一点。

于 2019-03-01T14:35:10.097 回答