pyautogui 置信度问题

def find_and_click(self, image,delay_before_click=0.5):
        """
        查找屏幕上的图像并点击其中心点。

        :param image: 要查找的图像文件名。
        :param confidence: 匹配置信度,范围为0到1。
        :param delay_before_click: 点击前等待的时间(秒)。
        """
        time.sleep(delay_before_click)  # 在点击前等待

        position = pyautogui.locateOnScreen(image,confidence=0.7)
        if position:
            center = pyautogui.center(position)
            pyautogui.click(center)
        else:
            print(f"图像 '{image}' 未找到。")

这是我的初始代码运行没问题

def find_and_click(self, image,confidence=0.7,delay_before_click=0.5):
        """
        查找屏幕上的图像并点击其中心点。

        :param image: 要查找的图像文件名。
        :param confidence: 匹配置信度,范围为0到1。
        :param delay_before_click: 点击前等待的时间(秒)。
        """
        time.sleep(delay_before_click)  # 在点击前等待

        position = pyautogui.locateOnScreen(image,confidence)
        if position:
            center = pyautogui.center(position)
            pyautogui.click(center)
        else:
            print(f"图像 '{image}' 未找到。")

后续调整了一下 结果报错

Traceback (most recent call last):

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyautogui\__init__.py", line 172, in wrapper

    return wrappedFunction(*args, **kwargs)

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyautogui\__init__.py", line 210, in locateOnScreen

    return pyscreeze.locateOnScreen(*args, **kwargs)

           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyscreeze\__init__.py", line 405, in locateOnScreen

    retVal = locate(image, screenshotIm, **kwargs)

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyscreeze\__init__.py", line 383, in locate

    points = tuple(locateAll(needleImage, haystackImage, **kwargs))

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyscreeze\__init__.py", line 257, in _locateAll_opencv

    raise ImageNotFoundException('Could not locate the image (highest confidence = %.3f)' % result.max())

pyscreeze.ImageNotFoundException: Could not locate the image (highest confidence = 0.985)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "c:\Users\zheng\Desktop\淘宝自动上架\自选颜色型号.py", line 53, in <module>

    auto_clicker.find_and_click("image4test/colorpicture.png")  # 点击颜色图片按钮

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\zheng\Desktop\淘宝自动上架\selectBrand.py", line 19, in find_and_click

    position = pyautogui.locateOnScreen(image,confidence)

  File "C:\Users\zheng\anaconda3\envs\taobao\Lib\site-packages\pyautogui\__init__.py", line 174, in wrapper

    raise ImageNotFoundException  # Raise PyAutoGUI's ImageNotFoundException.

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pyautogui.ImageNotFoundException

 

 Python 会把 confidences 当作第二个位置参数 传递给 locateOnScreen() 函数。

locateOnScreen() 的第二个参数是 minSearchTime,不是一个浮点数类型的置信度参数!

def find_and_click(self, image,confidences=0.7,delay_before_click=0.5):
        """
        查找屏幕上的图像并点击其中心点。

        :param image: 要查找的图像文件名。
        :param confidence: 匹配置信度,范围为0到1。
        :param delay_before_click: 点击前等待的时间(秒)。
        """
        time.sleep(delay_before_click)  # 在点击前等待

        position = pyautogui.locateOnScreen(image,confidence=confidences)
        if position:
            center = pyautogui.center(position)
            pyautogui.click(center)
        else:
            print(f"图像 '{image}' 未找到。")

正确写法如上图所示

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值