0
我想從錄製的視頻跟蹤python中的opencv對象。我想給出每個可見對象的唯一對象nr。例如,一個對象進入屏幕並獲取nr1,然後第二個連接第一個並獲得nr2,然後第一個對象離開屏幕,但第二個仍然可見,仍然獲得對象nr2而不是1(作爲唯一對象)。我找不到有關如何在線執行此操作的任何信息。任何幫助(包括代碼)表示讚賞。如何跟蹤opencv python中的不同輪廓
到目前爲止,我已經寫了越來越輪廓和繪圖對象號碼代碼:
cap = cv2.VideoCapture("video.mov")
while True:
flag, frame = cap.read()
cv2.drawContours(frame, contours, -1, (255,0,0) ,1)
for i in range(len(contours)):
cnt = contours[i]
cnt_nr = i+1
x,y,w,h = cv2.boundingRect(cnt)
cv2.putText(frame, str(cnt_nr), ((x+w)/2,(y+h)/2), cv2.FONT_HERSHEY_PLAIN, 1.8, (0,0,0))
cv2.imshow("Tracked frame",frame)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
break
您是否考慮過保留對舊對象(即前一幀)質心位置的引用,並將新檢測到的對象的位置與那些較舊的引用進行比較? – 2015-02-09 18:08:15
是的,我有。我現在確實能夠保持對象的可見性,但是當obj1進入屏幕,然後obj2進入和離開並且obj3進入和離開時,它仍然獲得名稱obj2。我想我可能能夠在幾個小時內對其進行編碼,但我認爲必須有一個更簡單的解決方案。感謝您的建議。 – crazjo 2015-02-09 21:33:01