我對使用 python 的計算機視覺非常陌生。我找到了一個運行 yolo.weights 檔案的腳本。一切都運行順利,直到它達到這個部分:
for i in indices:
i = i[0]
box = bbox[i]
x,y,w,h = box[0], box[1], box[2], box[3]
cv2.rectangle(img, (x,y),(x w,y h),(0,255,0),2)
cv2.putText(img, f'{classNames[classIds[i]].capitalize()} {int(confs[i]*100)}%' (x 10,y 30), cv2.FONT_HERSHEY_SIMPLEX, 0.9,(255,255,255),2)
它給出了錯誤:
檔案“script_location_etc”,第 47 行,在 findObjects i = i[0] IndexError:標量變數的無效索引。
i = i[0] 到底是做什么的?還有另一種方法是什么。
uj5u.com熱心網友回復:
這意味著您正在嘗試從非可迭代型別的索引位置檢索值。
i = i[0] 表示獲取的第一個元素i并將其保存在i變數中。
因此,如果我是可迭代的,它將像這樣作業:
>>> i = `some string`
>>> i = i[0]
>>> print(i)
... `s`
所以基本上你的代碼告訴你它i是不可迭代的,因此沒有第一個元素可以得到。如果沒有更多細節,我真的無法說出為什么會發生這種情況。也許嘗試完全洗掉該行,看看它是否有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/472816.html
上一篇:Opencv旋轉相機模式
