Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeError:在0-d数组Python上迭代(图像检测)_Python - Fatal编程技术网

TypeError:在0-d数组Python上迭代(图像检测)

TypeError:在0-d数组Python上迭代(图像检测),python,Python,我正在尝试制作一个对象检测器,它将从def(x1,y1,x2,y2) 但是当我运行代码时得到的错误是TypeError:0-d数组上的迭代 错误行,显示第28行,因此inp中(x,y,w,h)的 这段代码能正常工作吗? 我制定的代码: import cv2 import numpy as np import time from PIL import ImageGrab import pyautogui def object_detection(File_Name, x1 ,y1 ,x2 ,y2

我正在尝试制作一个对象检测器,它将从
def(x1,y1,x2,y2)

但是当我运行代码时得到的错误是TypeError:0-d数组上的迭代

错误行,显示第28行,因此inp中(x,y,w,h)的

这段代码能正常工作吗?

我制定的代码:

import cv2
import numpy as np
import time
from PIL import ImageGrab
import pyautogui

def object_detection(File_Name, x1 ,y1 ,x2 ,y2):
    F1 = File_Name
    while (True):
        screen =  np.array(ImageGrab.grab(bbox=(x1,y1,x2,y2)))
        last_time = time.time()
        cv2.imshow('window',cv2.cvtColor(screen, cv2.COLOR_BGR2RGB))
            
        inp = pyautogui.locateOnScreen(File_Name)
        inp = np.array(inp)
            
            
        if inp is None:
            print("No " + F1 + ' Found On Screen')
            
            
        if inp is not None:
            print(F1 + 'Found On' + File_Name)
            
            
        for (x,y,w,h) in inp:
            rect = cv2.rectangle(screen,(x,y),(x+w,y+h),(0,255,0),2)

        if cv2.waitKey(25) & 0xFF == ord('q'):
            cv2.destroyAllWindows()
            break

object_detection('Capture.PNG', 6, 138,767, 827)

零维数组是否有布尔测试?使用错误消息搜索通常是有效的。-还有其他。inp是cv2的
文件名
的输入源。显示输出您没有提供足够的信息。请阅读。使用错误消息搜索时,听起来像是“pyautogui.locateOnScreen(…”可能返回迭代器。您可以通过和检查/print
inp
及其数据类型来验证。为了适应这种情况,您应该将
inp=np.array(inp)
更改为
inp1=np.array(inp)
并在后续语句中使用
inp1
-这将保留原始数据以备故障排除。inp的数据类型是字符串而不是int是否对零维数组进行布尔测试?使用错误消息进行搜索通常是有效的。-还有其他。inp是cv2 sho的
文件名
的输入源w输出您没有提供足够的信息。请阅读。搜索错误消息时,听起来像“pyautogui.locateOnScreen(…”可能返回迭代器。您可以通过和检查/打印
inp
及其数据类型。为适应此情况,您应该将
inp=np.array(inp)
更改为
inp1=np.array(inp)
并在随后的语句中使用
inp1
——这将保留原始值,以便进行故障排除。inp的数据类型是字符串,而不是int