本文主要介绍 pyautoguiscreenshotlocateCenterOnScreen 方法

本文仍有问题未解决

screenshot——截取图像,并且可以保存

pag.screenshot('文件路径', region=(left, top, width, height)
文件路径可以任意选择,如D:\code\kar.png
region的范围意思是,从(left, top)开始——即(横坐标,纵坐标),宽度为width,高度为height
注意

  • pyautogui的x轴正方向水平向右,y轴正方向竖直向下
  • 可以不写region
  • import pyautogui as pag
    img1 = pag.screenshot()	# 默认是截取全屏,并返回一个对象
    img2 = pag.screenshot('kar.png', region=(0, 0, 10, 10))	
    # 将文件保存至当前文件目录下,并将返回对象保存在img2中,截取范围在region中
    

    文件保存路径不能含中文!否则报错can’t open/read file: check file path/integrity
    一开始我以为是权限问题,但是python已经配了环境变量了。接着删除opencv-python-headless,安装opencv-python,依然报错。
    然后我将文件名改为英文就OK了,所以文件名尽量不要用中文

    locateCenterOnScreen

    pyautogui 其实有很多截图的函数,但是比较有用的是locateCenterOnScreen

    基本用法如下:
    pag.locateCenterOnScreen('<filename>.png', region=(left, top, width, height), confidence=0.9
    该函数返回图片的中心坐标,Point类型
    region指搜索指定图片的范围
    confidence 指搜索的匹配程度,越高代表匹配程度越高,主要通过像素点的对应匹配来实现
    代码示例:

    import pyautogui as pag
    pag.screenshot('kar.png')
    imgCoordinate = pag.locateCenterOnScreen('kar.png')
    pag.click(imgCoordinate)
    

    注意

  • 可能会出现匹配失败的情况,不会像 官方文档 那样说的报错,而是返回 None 类型,这也是我疑惑的一个地方
  • 可以通过调confidence的方式来调整匹配程度,防止匹配太严格而导致匹配失败的情况
  • 来源:卡咚要努力变强

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python pyautogui 图像识别

    发表评论