我正在编写一个与电脑交互的机器人。简而言之,我所做的是:
- 截取屏幕截图 - 识别此屏幕截图上的对象(使用 cv2 matchTemplate)
- 使用找到的位置进行一些鼠标操作(例如:将鼠标指针移动到在前一点找到的图标上) -
从第一点重新开始
现在,我必须与屏幕上移动的某些对象进行交互,所以我需要一种快速截屏的方法,或者另一种方法来完成这项工作,我该怎么办?
您可以使用模块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 秒。这对于动作视频游戏来说可能太慢了,但适用于大多数用途和应用程序。
所以请记住这一点。