diff --git a/sksurgerybard/interaction/interaction.py b/sksurgerybard/interaction/interaction.py index 52576e7..53319c3 100644 --- a/sksurgerybard/interaction/interaction.py +++ b/sksurgerybard/interaction/interaction.py @@ -33,8 +33,10 @@ def __call__(self, event, _event_type_not_used): self._translate_model(key) if key in '8i9o0p': self._rotate_model(key) - if key == 'f': - self._bard_widget.tracking = not self._bard_widget.tracking + if key == 'Up': + self._bard_widget.tracker.stop_tracking() + if key == 'Down': + self._bard_widget.tracker.start_tracking() def _translate_model(self, key): diff --git a/sksurgerybard/widgets/bard_overlay_app.py b/sksurgerybard/widgets/bard_overlay_app.py index 65be060..bdcccf8 100644 --- a/sksurgerybard/widgets/bard_overlay_app.py +++ b/sksurgerybard/widgets/bard_overlay_app.py @@ -43,8 +43,6 @@ def __init__(self, configuration = None, calib_dir = None): self.tracker, self.transform_manager = setup_tracker(configuration) self.tracker.start_tracking() - self.tracking = True # A boolean that we can manipulate to start/ - # stop tracking self.transform_manager.add("tracker2camera", np.eye(4, dtype = np.float64)) @@ -168,8 +166,7 @@ def update(self): undistorted = cv2.undistort(image, self.mtx33d, self.dist15d) - if self.tracking: - self._update_tracking(image) + self._update_tracking(image) self._update_overlay_window() @@ -191,11 +188,17 @@ def _update_tracking(self, image): tracking = [] if (isinstance(self.tracker, ArUcoTracker) and not self.tracker.has_capture()): - port_handles, _timestamps, _framenumbers, tracking, quality = \ - self.tracker.get_frame(image) + try: + port_handles, _timestamps, _framenumbers, tracking, \ + quality = self.tracker.get_frame(image) + except ValueError: + return else: - port_handles, _timestamps, _framenumbers, tracking, quality = \ - self.tracker.get_frame() + try: + port_handles, _timestamps, _framenumbers, tracking, \ + quality = self.tracker.get_frame() + except ValueError: + return for index, port_handle in enumerate(port_handles): if (not np.isnan(quality[index])) and quality[index] > 0.2: