Python pyautogui 图像识别

本文主要介绍 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的方式来调整匹配程度,防止匹配太严格而导致匹配失败的情况
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值