summaryrefslogtreecommitdiff
path: root/cv/tracker
diff options
context:
space:
mode:
Diffstat (limited to 'cv/tracker')
-rw-r--r--cv/tracker/object_tracker.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/cv/tracker/object_tracker.py b/cv/tracker/object_tracker.py
new file mode 100644
index 0000000..315ffa3
--- /dev/null
+++ b/cv/tracker/object_tracker.py
@@ -0,0 +1,35 @@
+import cv2
+
+cap = cv2.VideoCapture(0)
+
+tracker = cv2.TrackerGOTURN_create()
+success, img = cap.read()
+
+# select a bounding box ( ROI )
+bbox = cv2.selectROI("Tracking", img, False)
+tracker.init(img, bbox)
+
+
+def drawBox(img, bbox):
+ x, y, w, h = int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3])
+ cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 255), 3, 1)
+ cv2.putText(img, "Tracking", (75, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
+
+
+while True:
+ timer = cv2.getTickCount()
+ success, img = cap.read()
+
+ success, bbox = tracker.update(img)
+
+ if success:
+ drawBox(img, bbox)
+ else:
+ cv2.putText(img, "Loss", (75, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
+
+ fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)
+ cv2.putText(img, str(int(fps)), (75, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
+ cv2.imshow("Tracking", img)
+
+ if cv2.waitKey(1) & 0xff == ord('q'):
+ break \ No newline at end of file