嗷不知道取名 2024-04-21 21:40 采纳率: 100%
浏览 157
已结题

有谁能看看这个pyautogui的locateonscreen哪里有问题吗

img


这个我找了好久,它没找到图片不应该返回none值吗,而且就连屏幕中有图片都一样报错

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-21 21:40
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在使用PyAutoGUI库中的locateOnScreen()函数来查找一个特定的图像,但是遇到了一些问题。根据错误信息,ImageNotFoundException表示程序未能在屏幕上找到指定的图像。

    首先,确保你提供的图像路径是正确的。在你的代码中,你尝试查找的图片名称是"1.JPG",你需要确认这个文件名、扩展名以及文件所在的路径是否准确无误。如果你的图片位于与Python脚本相同的目录中,只需提供文件名即可。如果图片在其他位置,你需要提供完整的文件路径,例如"C:/path/to/your/image/1.JPG"

    其次,检查一下图片的大小和位置。locateOnScreen()函数可能因为图片太小、被其他窗口遮挡或者缩放比例不匹配而找不到图片。尝试放大或缩小图片,并确保它在屏幕上可见且没有被其他元素覆盖。

    另外,confidence参数设置为0.9意味着只有当匹配度大于90%时才会被视为找到图片。这可能会提高对图像匹配的严格程度,导致即使图像存在也可能报告找不到。你可以尝试降低这个值,看是否能找到图片(但注意,过低的置信度可能导致过多的误匹配)。

    下面是修改后的代码示例,这里我假设图片和脚本在同一目录下:

    import pyautogui
    
    while True:
        try:
            未开始 = pyautogui.locateOnScreen("1.JPG", confidence=0.8)  # 降低置信度到0.8
            if 未开始 is None:
                pyautogui.scroll(-20)
            else:
                print("找到了图像!")
                print(未开始)
        except pyautogui.ImageNotFoundException:
            print("未能找到图像,请检查图片路径和是否存在屏幕中。")
    

    如果以上建议都不能解决你的问题,那么可能是图片的颜色模式、分辨率或其他视觉特性与实际显示在屏幕上的略有不同。在这种情况下,你可以尝试使用PIL(Python Imaging Library)或者其他图像处理库来预处理图像,使其更易于识别。你也可以尝试使用不同的图像搜索算法,比如OpenCV库,它提供了更高级的图像处理功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 已采纳回答 9月23日
  • 创建了问题 4月21日