(self)
| 152 | self.tracker.add_target(self.frame, rect) |
| 153 | |
| 154 | def run(self): |
| 155 | while True: |
| 156 | playing = not self.paused and not self.rect_sel.dragging |
| 157 | if playing or self.frame is None: |
| 158 | ret, frame = self.cap.read() |
| 159 | if not ret: |
| 160 | break |
| 161 | self.frame = frame.copy() |
| 162 | |
| 163 | vis = self.frame.copy() |
| 164 | if playing: |
| 165 | tracked = self.tracker.track(self.frame) |
| 166 | for tr in tracked: |
| 167 | cv2.polylines(vis, [np.int32(tr.quad)], True, (255, 255, 255), 2) |
| 168 | for (x, y) in np.int32(tr.p1): |
| 169 | cv2.circle(vis, (x, y), 2, (255, 255, 255)) |
| 170 | |
| 171 | self.rect_sel.draw(vis) |
| 172 | cv2.imshow('plane', vis) |
| 173 | ch = cv2.waitKey(1) |
| 174 | if ch == ord(' '): |
| 175 | self.paused = not self.paused |
| 176 | if ch == ord('c'): |
| 177 | self.tracker.clear() |
| 178 | if ch == 27: |
| 179 | break |
| 180 | |
| 181 | if __name__ == '__main__': |
| 182 | print(__doc__) |
no test coverage detected