0
我正在關注this鏈接,解決了problem of mine。在第一個鏈接中提到,我們可以創建一個「蒙版」,如果下一個對象非常接近那個「蒙版」,我們將不會檢測到它,因爲它可能是同一個對象。但是如果它有距離,我們應該檢測它,然後追蹤到最後。通過掩碼標記檢測到的對象
但我沒有得到如何創建掩碼並使用條件語句排除它。所以,第一個創建面具的問題。如果我可以創建對象的蒙版,那麼我可以嘗試從下一個檢測中排除它。
import cv2
import numpy as np
cap = cv2.VideoCapture('anyvideo.mp4')
while(1):
# Take each frame
ret, frame = cap.read()
if ret:
# detect the object and get contour of the image. I'm calling it bbox
tracker = cv2.Tracker_create("KCF")
ok = tracker.init(frame, tuple(bbox))
ok, bbox = tracker.update(frame)
p1 = (int(bbox[0]), int(bbox[1]))
p2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3]))
cv2.rectangle(frame, p1, p2, (0,0,255))
cv2.putText(frame, 'Tracked', (x + 25,y + 10), cv2.FONT_HERSHEY_SIMPLEX,1, (255,255,255), 2, cv2.LINE_AA)
mask = np.full((frame.shape[0], frame.shape[1]), 0, dtype=np.uint8)
res = res.append(cv2.bitwise_and(frame,frame,mask = mask))
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
else:
break
cap.release()
cv2.destroyAllWindows()
謝謝!
感謝您的回答。我已經創建了面具並相應地更新了代碼。現在我怎樣才能使用它作爲過濾器去除已經跟蹤的圖像。 – arijit
正如我之前提出的那樣,「對它執行二進制閾值」,在此之後,可以對其進行輪廓處理。計算它的質量中心並裁剪物體的適當區域。通過質量中心,您可以計算相對位置。算法的其餘部分取決於你自己的邏輯。您可以使用任何算法或您自己的邏輯來跟蹤對象。 – Akhilesh
@arijit,如果你需要任何幫助,你可以問。如果你發現這個答案有幫助,並投票選擇答案。 – Akhilesh