Example #1
0
    def save_rois(self, frame, rois):
        self._multi_tracker = cv2.MultiTracker_create()
        self._track_marks = []
        for bounding_box in rois[:2]:
            self._track_marks.append(bounding_box)
            roi_fragment = bounding_box.clip_to_fit(frame.shape).sample_from_image(frame)
            histogram = cv2.calcHist(roi_fragment, [0], None, [100], [0, 255])
            self._initial_roi_histograms.append(histogram)
            self._multi_tracker.add(self._create_tracker_fun(), frame, bounding_box.parameters)

        if len(self._track_marks) >= 2:
            self._base_angle = Point.point_angle(
                self._track_marks[0].corners[0],
                self._track_marks[1].corners[0]
            )
Example #2
0
 def to_angle(self, upper, lower):
     new_angle = Point.point_angle(upper.corners[0], lower.corners[0])
     result = new_angle - self._base_angle
     if result < -180:
         result = 360 + result
     return result