Exemple #1
0
 def _predict_one(self, index, new_corners):
     '''
     predict position of corner index
     @param index:
     @param new_corners:
     '''
     # predicting by taking vectors form near corners along the sides
     # and solving linear equation for intersection
     L = len(new_corners)
     nb = (index + 1) % L
     b = new_corners[nb]
     nd = (index - 1 + L) % L
     d = new_corners[nd]
     assert isinstance(b, Corner)
     v1 = b.get_prediction_vector(True, self.corners[nb])
     v2 = d.get_prediction_vector(False, self.corners[nd])
     p1 = b.p
     p2 = d.p
     (p, _) = solve_linear(v1, v2, p1, p2)
     point = add(b.p, v1, p)
     cor = Corner([d.p, point, b.p], imgtime=b.time)
     cor.compute_change(self.corners[index])
     cor.is_predicted = True
     if cor.similarity < self.avg_sim * 2:
         new_corners[index] = cor