(self)
| 56 | self.tracker.add_target(self.frame, rect) |
| 57 | |
| 58 | def run(self): |
| 59 | while True: |
| 60 | playing = not self.paused and not self.rect_sel.dragging |
| 61 | if playing or self.frame is None: |
| 62 | ret, frame = self.cap.read() |
| 63 | if not ret: |
| 64 | break |
| 65 | self.frame = frame.copy() |
| 66 | |
| 67 | vis = self.frame.copy() |
| 68 | if playing: |
| 69 | tracked = self.tracker.track(self.frame) |
| 70 | for tr in tracked: |
| 71 | cv2.polylines(vis, [np.int32(tr.quad)], True, (255, 255, 255), 2) |
| 72 | for (x, y) in np.int32(tr.p1): |
| 73 | cv2.circle(vis, (x, y), 2, (255, 255, 255)) |
| 74 | self.draw_overlay(vis, tr) |
| 75 | |
| 76 | self.rect_sel.draw(vis) |
| 77 | cv2.imshow('plane', vis) |
| 78 | ch = cv2.waitKey(1) |
| 79 | if ch == ord(' '): |
| 80 | self.paused = not self.paused |
| 81 | if ch == ord('c'): |
| 82 | self.tracker.clear() |
| 83 | if ch == 27: |
| 84 | break |
| 85 | |
| 86 | def draw_overlay(self, vis, tracked): |
| 87 | x0, y0, x1, y1 = tracked.target.rect |
no test coverage detected