OpenDroneMap-ODM/tests/test_camera.py

41 wiersze
1.3 KiB
Python

import time
import unittest
import os
import shutil
from opendm import camera
class TestCamera(unittest.TestCase):
def setUp(self):
if os.path.exists("tests/assets/output"):
shutil.rmtree("tests/assets/output")
os.makedirs("tests/assets/output")
def test_camera(self):
c = camera.get_cameras_from_opensfm("tests/assets/reconstruction.json")
self.assertEqual(len(c.keys()), 1)
camera_id = list(c.keys())[0]
self.assertTrue('v2 ' not in camera_id)
self.assertRaises(RuntimeError, camera.get_cameras_from_opensfm, 'tests/assets/nonexistant.json')
self.assertRaises(ValueError, camera.get_cameras_from_opensfm, 'tests/assets/gcp_extras.txt')
self.assertFalse('k1_prior' in c[camera_id])
# Add bogus field
c[camera_id]['test'] = 0
osfm_c = camera.get_opensfm_camera_models(c)
self.assertEqual(len(osfm_c.keys()), 1)
c1 = osfm_c[list(osfm_c.keys())[0]]
self.assertTrue('k1_prior' in c1)
self.assertTrue('k2_prior' in c1)
self.assertFalse('test' in c1)
self.assertEqual(c1['k1'], c1['k1_prior'])
self.assertEqual(c1['k2'], c1['k2_prior'])
self.assertEqual(c1['focal'], c1['focal_prior'])
self.assertTrue('width_prior' not in c1)
if __name__ == '__main__':
unittest.main()