Created
July 22, 2019 19:01
-
-
Save bigsnarfdude/346423724239f347e787d0554400c7ee to your computer and use it in GitHub Desktop.
goturn_opencv_tracker.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cv2 | |
tracker = cv2.TrackerGOTURN_create() | |
# Read video | |
video = cv2.VideoCapture("chaplin.mp4") | |
# Exit if video not opened | |
if not video.isOpened(): | |
print("Could not open video") | |
sys.exit() | |
# Read first frame | |
ok,frame = video.read() | |
if not ok: | |
print("Cannot read video file") | |
sys.exit() | |
# Define a bounding box | |
bbox = (276, 23, 86, 320) | |
# Uncomment the line below to select a different bounding box | |
#bbox = cv2.selectROI(frame, False) | |
# Initialize tracker with first frame and bounding box | |
ok = tracker.init(frame,bbox) | |
while True: | |
# Read a new frame | |
ok, frame = video.read() | |
if not ok: | |
break | |
# Start timer | |
timer = cv2.getTickCount() | |
# Update tracker | |
ok, bbox = tracker.update(frame) | |
# Calculate Frames per second (FPS) | |
fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer); | |
# Draw bounding box | |
if ok: | |
# Tracking success | |
p1 = (int(bbox[0]), int(bbox[1])) | |
p2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3])) | |
cv2.rectangle(frame, p1, p2, (255,0,0), 2, 1) | |
else : | |
# Tracking failure | |
cv2.putText(frame, "Tracking failure detected", (100,80), cv2.FONT_HERSHEY_SIMPLEX, 0.75,(0,0,255),2) | |
# Display tracker type on frame | |
cv2.putText(frame, "GOTURN Tracker", (100,20), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50,170,50),2); | |
# Display FPS on frame | |
cv2.putText(frame, "FPS : " + str(int(fps)), (100,50), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50,170,50), 2); | |
# Display result | |
cv2.imshow("Tracking", frame) | |
# Exit if ESC pressed | |
k = cv2.waitKey(1) & 0xff | |
if k == 27: | |
break | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment