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)