def test_four_cams_single_reconstruction_non_rigid(): """Four cameras, one reconstruction""" sa = pybundle.BundleAdjuster() sa.add_shot("1", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_shot("2", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_shot("3", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_shot("4", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_reconstruction("1234", False) sa.add_reconstruction_shot("1234", 1, "1") sa.add_reconstruction_shot("1234", 1, "2") sa.add_reconstruction_shot("1234", 1, "3") sa.add_reconstruction_shot("1234", 1, "4") sa.set_scale_sharing("1234", False) sa.add_relative_similarity( pybundle.BARelativeSimilarity( "1234", "1", "1234", "2", [0, 0, 0], [-1, 0, 0], 1, 1 ) ) sa.add_relative_similarity( pybundle.BARelativeSimilarity( "1234", "2", "1234", "3", [0, 0, 0], [-1, -1, 0], 1, 1 ) ) sa.add_relative_similarity( pybundle.BARelativeSimilarity( "1234", "3", "1234", "4", [0, 0, 0], [0, -1, 0], 1, 1 ) ) sa.add_absolute_position("1", [0, 0, 0], 1, "1") sa.add_absolute_position("2", [2, 0, 0], 1, "2") sa.add_absolute_position("3", [4, 2, 0], 1, "3") sa.add_absolute_position("4", [4, 4, 0], 1, "4") sa.run() s1 = sa.get_shot("1") s2 = sa.get_shot("2") s3 = sa.get_shot("3") s4 = sa.get_shot("4") r1234 = sa.get_reconstruction("1234") assert np.allclose(s1.t, [0, 0, 0], atol=1e-6) assert np.allclose(s2.t, [-2, 0, 0], atol=1e-6) assert np.allclose(s3.t, [-4, -2, 0], atol=1e-6) assert np.allclose(s4.t, [-4, -4, 0], atol=1e-6) assert np.allclose(r1234.get_scale("1"), 0.5) assert np.allclose(r1234.get_scale("2"), 0.5) assert np.allclose(r1234.get_scale("3"), 0.5) assert np.allclose(r1234.get_scale("4"), 0.5)
def test_four_cams_single_reconstruction_non_rigid(): """Four cameras, one reconstruction""" sa = pybundle.BundleAdjuster() sa.add_shot('1', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_shot('2', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_shot('3', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_shot('4', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_reconstruction('1234', False) sa.add_reconstruction_shot('1234', 1, '1') sa.add_reconstruction_shot('1234', 1, '2') sa.add_reconstruction_shot('1234', 1, '3') sa.add_reconstruction_shot('1234', 1, '4') sa.set_scale_sharing('1234', False) sa.add_relative_similarity( pybundle.BARelativeSimilarity('1234', '1', '1234', '2', [0, 0, 0], [-1, 0, 0], 1, 1)) sa.add_relative_similarity( pybundle.BARelativeSimilarity('1234', '2', '1234', '3', [0, 0, 0], [-1, -1, 0], 1, 1)) sa.add_relative_similarity( pybundle.BARelativeSimilarity('1234', '3', '1234', '4', [0, 0, 0], [0, -1, 0], 1, 1)) sa.add_absolute_position('1', [0, 0, 0], 1, '1') sa.add_absolute_position('2', [2, 0, 0], 1, '2') sa.add_absolute_position('3', [4, 2, 0], 1, '3') sa.add_absolute_position('4', [4, 4, 0], 1, '4') sa.run() s1 = sa.get_shot('1') s2 = sa.get_shot('2') s3 = sa.get_shot('3') s4 = sa.get_shot('4') r1234 = sa.get_reconstruction('1234') assert np.allclose(s1.t, [0, 0, 0], atol=1e-6) assert np.allclose(s2.t, [-2, 0, 0], atol=1e-6) assert np.allclose(s3.t, [-4, -2, 0], atol=1e-6) assert np.allclose(s4.t, [-4, -4, 0], atol=1e-6) assert np.allclose(r1234.get_scale('1'), 0.5) assert np.allclose(r1234.get_scale('2'), 0.5) assert np.allclose(r1234.get_scale('3'), 0.5) assert np.allclose(r1234.get_scale('4'), 0.5)
def test_pair_non_rigid(): """Simple two camera test""" sa = pybundle.BundleAdjuster() sa.add_shot('1', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_shot('2', 'cam1', [0, 0, 0], [0, 0, 0], False) sa.add_reconstruction('12', False) sa.add_reconstruction_shot('12', 4, '1') sa.add_reconstruction_shot('12', 4, '2') sa.set_scale_sharing('12', False) sa.add_relative_similarity(pybundle.BARelativeSimilarity('12', '1', '12', '2', [0, 0, 0], [-1, 0, 0], 1, 1)) sa.add_absolute_position('1', [0, 0, 0], 1, '1') sa.add_absolute_position('2', [2, 0, 0], 1, '2') sa.run() s1 = sa.get_shot('1') s2 = sa.get_shot('2') r12 = sa.get_reconstruction('12') assert np.allclose(s1.t, [0, 0, 0], atol=1e-6) assert np.allclose(s2.t, [-2, 0, 0], atol=1e-6) assert np.allclose(r12.get_scale('1'), 0.5) assert np.allclose(r12.get_scale('2'), 0.5)
def test_pair_non_rigid(bundle_adjuster): """Simple two camera test""" sa = bundle_adjuster sa.add_shot("1", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_shot("2", "cam1", [0, 0, 0], [0, 0, 0], False) sa.add_reconstruction("12", False) sa.add_reconstruction_shot("12", 4, "1") sa.add_reconstruction_shot("12", 4, "2") sa.set_scale_sharing("12", False) sa.add_relative_similarity( pybundle.BARelativeSimilarity("12", "1", "12", "2", [0, 0, 0], [-1, 0, 0], 1, 1) ) sa.add_absolute_position("1", [0, 0, 0], 1, "1") sa.add_absolute_position("2", [2, 0, 0], 1, "2") sa.run() s1 = sa.get_shot("1") s2 = sa.get_shot("2") r12 = sa.get_reconstruction("12") assert np.allclose(s1.t, [0, 0, 0], atol=1e-6) assert np.allclose(s2.t, [-2, 0, 0], atol=1e-6) assert np.allclose(r12.get_scale("1"), 0.5) assert np.allclose(r12.get_scale("2"), 0.5)