Python使用pyautogui.locateOnScreen(‘xx.png‘, confidence=0.9) 语句时提示未安装opencv解决办法

在Python中安装并import导入pyautogui模块后,可以很方便来控制鼠标和键盘实现自动化操作,再不也不用什么按健精灵之类的小儿科东东了。

pyautogui有一个locateOnScreen()方法,可以在屏幕上查找图片,如果找到则返回左上角和右下角的坐标位置。默认情况下,查找精确度为1.0,即百分之百精准匹配——这其实很不方便,实际我们把精确度设为0.9更科学,既能保证不会找错对象,又不会因为默认的精确度太苛刻,明明对象存在代码却找不到而返回None。这时我们需要增加一个参数 confidence=0.9,例子如下:

pyautogui.locateOnScreen('xx.png', confidence=0.9)

但是,用了上面的参数后,你会发现,运行报错:

raise NotImplementedError('The confidence keyword argument is only available if OpenCV is installed.')
NotImplementedError: The confidence keyword argument is only available if OpenCV is installed.

这是因为没有安装opencv包,解决办法如下(以Pycharm为例):

File--Setting--Project:pythonProject--Python Interpreter--右边的加号---搜索opencv-python---install parkage,耐心等待,安装完成。如果提示失败,那很可能是网络的问题,因为需要从地球那面下载,那就想办法找个“梯子”。

安装好后,就可以正常使用confidence参数了。

我说的这个方法最简单,不需要pip install opencv-python和dump。

 

  • 19
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
def get_stock_minute_price_in_one_day_by_sina_pyautogui_new(str_date,tscode): newdf={} x = 81 y = 635 while True: try: pyautogui.click(pyautogui.center(pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\browser.png", confidence=0.9)),duration=0.25) waiting_time=time.time() while True: if(pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\browser_plus.png", confidence=0.8)!=None): pyautogui.click(pyautogui.center( pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\browser_plus.png", confidence=0.8)), duration=0.25) break if(time.time()-waiting_time>10): raise BaseException time.sleep(1) pyautogui.typewrite("https://finance.sina.com.cn/h5charts/tchart.html?symbol="+tscode+"&date="+str_date+"&rangeselector=true&indicator=tvol",interval=0.05) time.sleep(1) pyautogui.press("enter") time.sleep(2) # if(pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\void_line.png", confidence=0.8)==None): # raise BaseException pyautogui.moveTo(x, y, duration=0.25) while True: x=x+7 pyautogui.moveTo(x,y) img1 = pyautogui.screenshot(region=(2279 - 24,237- 66, 214, 154)) img2 = pyautogui.screenshot(region=(117 - 24, 238 - 66, 214, 154)) pool.submit(gsmpiodbspn_thread, newdf, img1,img2) if (("15:00" in newdf) == True or x >= 2475): break pyautogui.click(pyautogui.center( pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\close_browser.png", confidence=0.8)), duration=0.25) if(("15:00" in newdf)==True or x>=2475): break except BaseException as e: print(e) pyautogui.click(pyautogui.center( pyautogui.locateOnScreen(r"C:\PycharmProjects\my_backtest\img\close_browser.png", confidence=0.8)), duration=0.25) return newdf。 请问上面这段个函数,在不改变原来功能的情况下,如何提高运行速度
06-02
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值