def test_essential_n_points(pairs_and_their_E): for f1, f2, E, _ in pairs_and_their_E: f1 /= np.linalg.norm(f1, axis=1)[:, None] f2 /= np.linalg.norm(f2, axis=1)[:, None] result = pygeometry.essential_n_points(f1, f2) E_found = result[0] if E_found[0, 0] * E[0, 0] < 0.0: E_found *= -1.0 assert np.linalg.det(E_found) < 1e-10 assert np.linalg.norm(E - E_found, ord="fro") < 1e-6
def test_essential_n_points(one_pair_and_its_E): f1, f2, E, _ = one_pair_and_its_E f1 /= np.linalg.norm(f1, axis=1)[:, None] f2 /= np.linalg.norm(f2, axis=1)[:, None] result = pygeometry.essential_n_points(f1, f2) E_found = result[0] if E_found[0, 0]*E[0, 0] < 0.: E_found *= -1.0 assert np.linalg.det(E_found) < 1e-10 assert np.linalg.norm(E-E_found, ord='fro') < 1e-6