一种提升pyautogui屏幕图像定位准确度的方法

1

pyautogui可以根据绝对坐标来定位,也可以直接根据图片来定位。在实际使用过程中,可以目标区域的截图输入到pyautogui.locateOnScreen()函数,则函数会输出图像在屏幕上的位置信息,如果当前屏幕上搜索不到输入的图像,则会返回None。

根据图像来定位本质上是根据像素点来匹配,函数并没有理解图像的意义。在进行中文图像的定位时,很容易出现无法定位,或者错误定位的问题。

2

这个时候就可以借助opencv的力量来提高识别率了,先使用pip install opencv-python命令安装opencv,然后就可以在pyautogui.locateOnScreen()函数中加入confidence参数,也就是识别准确度,当confidence越小时,定位的精度就会越低,函数会忽略掉一些微小的差异,这样可以提高定位的效率,实现模糊定位的功能。

例如,我们要根据下面的截图来定位字体大小为小四的‘中国’两个字,
在这里插入图片描述
在这里插入图片描述
如果,两个字中间有一个,,那么函数就无法定位。如果把confidence设置为0.5,则又可以定位。

>>>pyautogui.locateOnScreen('zhongguo.png')
pyautogui.locateOnScreen('zhongguo.png', confidence=0.5)
Box(left=1326, top=319, width=47, height=23)

而将confidence设置为0.8,无法定位,设置为0.7,可以定位。所以要根据具体的识别目标来设置合适的confidence

>>>pyautogui.locateOnScreen('E:\8-To do list\Pyauto\image\zhongguo.png', confidence=0.8)
>>>pyautogui.locateOnScreen('E:\8-To do list\Pyauto\image\zhongguo.png', confidence=0.7)
Box(left=1330, top=319, width=47, height=23)
  • 12
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值