「已注销」 2021-09-15 18:52 采纳率: 66.7%
浏览 73
已结题

图像识别问题,当多次识别不到目标,然后目标再次出现的时候就会报错

问题如标题,有时候目标消失也会报错,请问是什么问题导致?要如何解决?


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai 
# 阴阳师自动挑战御魂副本

import pyautogui
import time
import random   # 生成随机数模块

pyautogui.PAUSE = 1

cishu = 30  # 要挑战的次数

# 图像识别(一个)
btm = pyautogui.locateOnScreen('zan.png')
print('图像识别-1')
print(btm)  # Box(left=1280, top=344, width=22, height=22)

# 图像识别(多个)
btm = pyautogui.locateAllOnScreen('zan.png')
print('图像识别-2')
print(list(btm))  # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)]

#im = pyautogui.screenshot()     #返回屏幕的截图,是一个Pillow的image对象
#im.save('屏幕截图.png')

def zan():  #------挑战------
    a2 = random.randint(0, 15) #生成0~180之间的随机数
    print('随机数', a2, '生成成功')
   # time.sleep(0.5)    # 等待 0.5 秒
    left, top, width, height = pyautogui.locateOnScreen('zan.png')   # 寻找 图片"zan.png";
    center = pyautogui.center((left, top, width, height))    # 寻找 图片的中心
    pyautogui.click(center.x,center.y+a2,button='left')    # 点击
    print(center)
    print(center.x,center.y)
    print('点击成功!')

def zan2(): #------结算------
    a1 = random.randint(0, 180) #生成0~180之间的随机数
    print('随机数', a1, '生成成功')
    left, top, width, height = pyautogui.locateOnScreen('zan2.png')   # 寻找 图片"zan2.png";
    center = pyautogui.center((left, top, width, height))    # 寻找 图片的中心
    pyautogui.moveTo(center.x,center.y+a1)
    pyautogui.click(center.x,center.y+a1,button='left')    # 点击
    print(center.x,center.y)
    print('点击成功!')

    
i = 0
while i < cishu:
    if pyautogui.locateOnScreen('zan.png'):
        print('调用挑战函数中……')
        yanshi1 = random.randint(0,6) #生成0~6之间的随机数
        time.sleep(yanshi1) # 延时
        zan()   # 调用点击函数
        print('当前挑战次数',i)
        i += 1
    elif pyautogui.locateOnScreen('zan2.png'):
        print('调用结算函数中……')
        yanshi2 = random.randint(0,8) # 生成0~6之间的随机数
        time.sleep(yanshi2)
        zan2()  # 调用结算函数
    else:
        time.sleep(5)
        print('没有识别到内容,5秒后继续尝试')
        # pyautogui.scroll(-500)    # 本页没有图片后,滚动鼠标;
        #print('没有找到目标,屏幕下滚~')

下面是终端运行的结果
PS E:\代码\python> & 'C:\Users\isspa\AppData\Local\Programs\Python\Python39\python.exe' 'c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy\launcher' '64122' '--' 'e:\代
码\python\图像识别-1.py'
图像识别-1
Box(left=1233, top=519, width=66, height=36)
图像识别-2
[Box(left=1233, top=519, width=66, height=36)]
调用挑战函数中……
随机数 14 生成成功
Point(x=1266, y=537)
1266 537
点击成功!
当前挑战次数 0
Traceback (most recent call last):
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy_main
.py", line 45, in
cli.main()
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
run()
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
runpy.run_path(target_as_str, run_name=compat.force_str("main"))
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 268, in run_path
return _run_module_code(code, init_globals, run_name,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 97, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "e:\代码\python\图像识别-1.py", line 55, in
zan() # 调用点击函数
File "e:\代码\python\图像识别-1.py", line 31, in zan
left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 图片"zan.png";
TypeError: cannot unpack non-iterable NoneType object

下面是程序用到的图片

img

img

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月25日
  • 已采纳回答 9月17日
  • 创建了问题 9月15日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度