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(…”可能返回迭代器。您可以通过和检查/printinp
及其数据类型来验证。为了适应这种情况,您应该将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