def test_instantiate_fast(self):
     """ControlParams instantiation through constructor"""
     cp = ControlParams(4, ['headers', 'hp', 'allcam'], (1280, 1024), 
         (15.15,16.16), 18, [19.19], [21.21], 20.20)
     
     self.failUnless(cp.get_num_cams() == 4)
     self.failUnless(cp.get_hp_flag())
     self.failUnless(cp.get_allCam_flag())
     self.failUnless(cp.get_tiff_flag())
     self.failUnless(cp.get_image_size(), (1280, 1024))
     self.failUnless(cp.get_pixel_size() == (15.15,16.16))
     self.failUnless(cp.get_chfield() == 0)
     
     mm = cp.get_multimedia_params()
     self.failUnless(mm.get_n1() == 18)
     self.failUnless(mm.get_n2()[0] == 19.19)
     self.failUnless(mm.get_n3() == 20.20)
     self.failUnless(mm.get_d()[0] == 21.21)
Example #2
0
 def test_instantiate_fast(self):
     """ControlParams instantiation through constructor"""
     cp = ControlParams(4, ['headers', 'hp', 'allcam'], (1280, 1024), 
         (15.15,16.16), 18, [19.19], [21.21], 20.20)
     
     self.failUnless(cp.get_num_cams() == 4)
     self.failUnless(cp.get_hp_flag())
     self.failUnless(cp.get_allCam_flag())
     self.failUnless(cp.get_tiff_flag())
     self.failUnless(cp.get_image_size(), (1280, 1024))
     self.failUnless(cp.get_pixel_size() == (15.15,16.16))
     self.failUnless(cp.get_chfield() == 0)
     
     mm = cp.get_multimedia_params()
     self.failUnless(mm.get_n1() == 18)
     self.failUnless(mm.get_n2()[0] == 19.19)
     self.failUnless(mm.get_n3() == 20.20)
     self.failUnless(mm.get_d()[0] == 21.21)
    def test_two_cameras(self):
        ori_tmpl = "testing_fodder/calibration/sym_cam{cam_num}.tif.ori"
        add_file = "testing_fodder/calibration/cam1.tif.addpar"

        orig_cal = Calibration()
        orig_cal.from_file(
            ori_tmpl.format(cam_num=1).encode(), add_file.encode())
        proj_cal = Calibration()
        proj_cal.from_file(
            ori_tmpl.format(cam_num=3).encode(), add_file.encode())

        # reorient cams:
        orig_cal.set_angles(np.r_[0., -np.pi / 4., 0.])
        proj_cal.set_angles(np.r_[0., 3 * np.pi / 4., 0.])

        cpar = ControlParams(4)
        cpar.read_control_par(b"testing_fodder/corresp/control.par")
        sens_size = cpar.get_image_size()

        vpar = VolumeParams()
        vpar.read_volume_par(b"testing_fodder/corresp/criteria.par")
        vpar.set_Zmin_lay([-10, -10])
        vpar.set_Zmax_lay([10, 10])

        mult_params = cpar.get_multimedia_params()
        mult_params.set_n1(1.)
        mult_params.set_layers(np.array([1.]), np.array([1.]))
        mult_params.set_n3(1.)

        # Central point translates to central point because cameras point
        # directly at each other.
        mid = np.r_[sens_size] / 2.
        line = epipolar_curve(mid, orig_cal, proj_cal, 5, cpar, vpar)
        self.failUnless(np.all(abs(line - mid) < 1e-6))

        # An equatorial point draws a latitude.
        line = epipolar_curve(mid - np.r_[100., 0.], orig_cal, proj_cal, 5,
                              cpar, vpar)
        np.testing.assert_array_equal(np.argsort(line[:, 0]),
                                      np.arange(5)[::-1])
        self.failUnless(np.all(abs(line[:, 1] - mid[1]) < 1e-6))
Example #4
0
 def test_two_cameras(self):
     ori_tmpl = "testing_fodder/calibration/sym_cam{cam_num}.tif.ori"
     add_file = "testing_fodder/calibration/cam1.tif.addpar"
     
     orig_cal = Calibration()
     orig_cal.from_file(ori_tmpl.format(cam_num=1).encode(), add_file.encode())
     proj_cal = Calibration()
     proj_cal.from_file(ori_tmpl.format(cam_num=3).encode(), add_file.encode())
     
     # reorient cams:
     orig_cal.set_angles(np.r_[0., -np.pi/4., 0.])
     proj_cal.set_angles(np.r_[0., 3*np.pi/4., 0.])
     
     cpar = ControlParams(4)
     cpar.read_control_par(b"testing_fodder/corresp/control.par")
     sens_size = cpar.get_image_size()
     
     vpar = VolumeParams()
     vpar.read_volume_par(b"testing_fodder/corresp/criteria.par")
     vpar.set_Zmin_lay([-10, -10])
     vpar.set_Zmax_lay([10, 10])
     
     mult_params = cpar.get_multimedia_params()
     mult_params.set_n1(1.)
     mult_params.set_layers(np.array([1.]), np.array([1.]))
     mult_params.set_n3(1.)
     
     # Central point translates to central point because cameras point 
     # directly at each other.
     mid = np.r_[sens_size]/2.
     line = epipolar_curve(mid, orig_cal, proj_cal, 5, cpar, vpar)
     self.failUnless(np.all(abs(line - mid) < 1e-6))
     
     # An equatorial point draws a latitude.
     line = epipolar_curve(
         mid - np.r_[100., 0.], orig_cal, proj_cal, 5, cpar, vpar)
     np.testing.assert_array_equal(np.argsort(line[:,0]), np.arange(5)[::-1])
     self.failUnless(np.all(abs(line[:,1] - mid[1]) < 1e-6))
class Test_ControlParams(unittest.TestCase):
    def setUp(self):
        self.input_control_par_file_name = "testing_fodder/control_parameters/control.par"
        self.temp_output_directory = "testing_fodder/control_parameters/testing_output"
        
        # create a temporary output directory (will be deleted by the end of test)
        if not os.path.exists(self.temp_output_directory):
            os.makedirs(self.temp_output_directory)
        # create an instance of ControlParams class
        self.cp_obj = ControlParams(4)
        
    def test_read_control(self):
        # Fill the ControlParams object with parameters from test file
        self.cp_obj.read_control_par(self.input_control_par_file_name)
        # check if all parameters are equal to the contents of test file
        self.failUnless(self.cp_obj.get_img_base_name(0) == "dumbbell/cam1_Scene77_4085") 
        self.failUnless(self.cp_obj.get_img_base_name(1) == "dumbbell/cam2_Scene77_4085")
        self.failUnless(self.cp_obj.get_img_base_name(2) == "dumbbell/cam3_Scene77_4085")
        self.failUnless(self.cp_obj.get_img_base_name(3) == "dumbbell/cam4_Scene77_4085")
        
        self.failUnless(self.cp_obj.get_cal_img_base_name(0) == "cal/cam1.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(1) == "cal/cam2.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(2) == "cal/cam3.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(3) == "cal/cam4.tif")
        
        self.failUnless(self.cp_obj.get_num_cams() == 4)
        self.failUnless(self.cp_obj.get_hp_flag())
        self.failUnless(self.cp_obj.get_allCam_flag())
        self.failUnless(self.cp_obj.get_tiff_flag())
        self.failUnless(self.cp_obj.get_image_size(), (1280, 1024))
        self.failUnless(self.cp_obj.get_pixel_size() == (15.15,16.16))
        self.failUnless(self.cp_obj.get_chfield() == 17)
        
        self.failUnless(self.cp_obj.get_multimedia_params().get_n1() == 18)
        self.failUnless(self.cp_obj.get_multimedia_params().get_n2()[0] == 19.19)
        self.failUnless(self.cp_obj.get_multimedia_params().get_n3() == 20.20)
        self.failUnless(self.cp_obj.get_multimedia_params().get_d()[0] == 21.21)
     
    def test_instantiate_fast(self):
        """ControlParams instantiation through constructor"""
        cp = ControlParams(4, ['headers', 'hp', 'allcam'], (1280, 1024), 
            (15.15,16.16), 18, [19.19], [21.21], 20.20)
        
        self.failUnless(cp.get_num_cams() == 4)
        self.failUnless(cp.get_hp_flag())
        self.failUnless(cp.get_allCam_flag())
        self.failUnless(cp.get_tiff_flag())
        self.failUnless(cp.get_image_size(), (1280, 1024))
        self.failUnless(cp.get_pixel_size() == (15.15,16.16))
        self.failUnless(cp.get_chfield() == 0)
        
        mm = cp.get_multimedia_params()
        self.failUnless(mm.get_n1() == 18)
        self.failUnless(mm.get_n2()[0] == 19.19)
        self.failUnless(mm.get_n3() == 20.20)
        self.failUnless(mm.get_d()[0] == 21.21)
        
        
    def test_getters_setters(self):
        cams_num = 4
        for cam in range(cams_num):
            new_str = str(cam) + "some string" + str(cam)
            
            self.cp_obj.set_img_base_name(cam, new_str)
            self.failUnless(self.cp_obj.get_img_base_name(cam) == new_str)
            
            self.cp_obj.set_cal_img_base_name(cam, new_str)
            self.failUnless(self.cp_obj.get_cal_img_base_name(cam) == new_str)
        
        self.cp_obj.set_hp_flag(True)
        self.failUnless(self.cp_obj.get_hp_flag())
        self.cp_obj.set_hp_flag(False)
        self.failUnless(not self.cp_obj.get_hp_flag())
        
        self.cp_obj.set_allCam_flag(True)
        self.failUnless(self.cp_obj.get_allCam_flag())
        self.cp_obj.set_allCam_flag(False)
        self.failUnless(not self.cp_obj.get_allCam_flag())
        
        self.cp_obj.set_tiff_flag(True)
        self.failUnless(self.cp_obj.get_tiff_flag())
        self.cp_obj.set_tiff_flag(False)
        self.failUnless(not self.cp_obj.get_tiff_flag())
        
        self.cp_obj.set_image_size((4, 5))
        self.failUnless(self.cp_obj.get_image_size()== (4, 5))
        print self.cp_obj.get_pixel_size()
        self.cp_obj.set_pixel_size((6.1, 7.0))
        numpy.testing.assert_array_equal(self.cp_obj.get_pixel_size(), (6.1, 7))
        
        self.cp_obj.set_chfield(8)
        self.failUnless(self.cp_obj.get_chfield() == 8)
         
    # testing __richcmp__ comparison method of ControlParams class
    def test_rich_compare(self):
        self.cp_obj2 = ControlParams(4)
        self.cp_obj2.read_control_par(self.input_control_par_file_name)
        
        self.cp_obj3 = ControlParams(4)
        self.cp_obj3.read_control_par(self.input_control_par_file_name)
           
        self.failUnless(self.cp_obj2 == self.cp_obj3)
        self.failIf(self.cp_obj2 != self.cp_obj3)
           
        self.cp_obj2.set_hp_flag(False)
        self.failUnless(self.cp_obj2 != self.cp_obj3)
        self.failIf(self.cp_obj2 == self.cp_obj3)
        
        with self.assertRaises(TypeError):
            var = (self.cp_obj2 > self.cp_obj3)  # unhandled operator > 
      
    def tearDown(self):
        # remove the testing output directory and its files
        shutil.rmtree(self.temp_output_directory)        
Example #6
0
class Test_ControlParams(unittest.TestCase):
    def setUp(self):
        self.input_control_par_file_name = "testing_fodder/control_parameters/control.par"
        self.temp_output_directory = "testing_fodder/control_parameters/testing_output"
        
        # create a temporary output directory (will be deleted by the end of test)
        if not os.path.exists(self.temp_output_directory):
            os.makedirs(self.temp_output_directory)
        # create an instance of ControlParams class
        self.cp_obj = ControlParams(4)
        
    def test_read_control(self):
        # Fill the ControlParams object with parameters from test file
        self.cp_obj.read_control_par(self.input_control_par_file_name)
        # check if all parameters are equal to the contents of test file
        self.failUnless(self.cp_obj.get_img_base_name(0) == "dumbbell/cam1_Scene77_4085") 
        self.failUnless(self.cp_obj.get_img_base_name(1) == "dumbbell/cam2_Scene77_4085")
        self.failUnless(self.cp_obj.get_img_base_name(2) == "dumbbell/cam3_Scene77_4085")
        self.failUnless(self.cp_obj.get_img_base_name(3) == "dumbbell/cam4_Scene77_4085")
        
        self.failUnless(self.cp_obj.get_cal_img_base_name(0) == "cal/cam1.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(1) == "cal/cam2.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(2) == "cal/cam3.tif")
        self.failUnless(self.cp_obj.get_cal_img_base_name(3) == "cal/cam4.tif")
        
        self.failUnless(self.cp_obj.get_num_cams() == 4)
        self.failUnless(self.cp_obj.get_hp_flag())
        self.failUnless(self.cp_obj.get_allCam_flag())
        self.failUnless(self.cp_obj.get_tiff_flag())
        self.failUnless(self.cp_obj.get_image_size(), (1280, 1024))
        self.failUnless(self.cp_obj.get_pixel_size() == (15.15,16.16))
        self.failUnless(self.cp_obj.get_chfield() == 17)
        
        self.failUnless(self.cp_obj.get_multimedia_params().get_n1() == 18)
        self.failUnless(self.cp_obj.get_multimedia_params().get_n2()[0] == 19.19)
        self.failUnless(self.cp_obj.get_multimedia_params().get_n3() == 20.20)
        self.failUnless(self.cp_obj.get_multimedia_params().get_d()[0] == 21.21)
     
    def test_instantiate_fast(self):
        """ControlParams instantiation through constructor"""
        cp = ControlParams(4, ['headers', 'hp', 'allcam'], (1280, 1024), 
            (15.15,16.16), 18, [19.19], [21.21], 20.20)
        
        self.failUnless(cp.get_num_cams() == 4)
        self.failUnless(cp.get_hp_flag())
        self.failUnless(cp.get_allCam_flag())
        self.failUnless(cp.get_tiff_flag())
        self.failUnless(cp.get_image_size(), (1280, 1024))
        self.failUnless(cp.get_pixel_size() == (15.15,16.16))
        self.failUnless(cp.get_chfield() == 0)
        
        mm = cp.get_multimedia_params()
        self.failUnless(mm.get_n1() == 18)
        self.failUnless(mm.get_n2()[0] == 19.19)
        self.failUnless(mm.get_n3() == 20.20)
        self.failUnless(mm.get_d()[0] == 21.21)
        
        
    def test_getters_setters(self):
        cams_num = 4
        for cam in range(cams_num):
            new_str = str(cam) + "some string" + str(cam)
            
            self.cp_obj.set_img_base_name(cam, new_str)
            self.failUnless(self.cp_obj.get_img_base_name(cam) == new_str)
            
            self.cp_obj.set_cal_img_base_name(cam, new_str)
            self.failUnless(self.cp_obj.get_cal_img_base_name(cam) == new_str)
        
        self.cp_obj.set_hp_flag(True)
        self.failUnless(self.cp_obj.get_hp_flag())
        self.cp_obj.set_hp_flag(False)
        self.failUnless(not self.cp_obj.get_hp_flag())
        
        self.cp_obj.set_allCam_flag(True)
        self.failUnless(self.cp_obj.get_allCam_flag())
        self.cp_obj.set_allCam_flag(False)
        self.failUnless(not self.cp_obj.get_allCam_flag())
        
        self.cp_obj.set_tiff_flag(True)
        self.failUnless(self.cp_obj.get_tiff_flag())
        self.cp_obj.set_tiff_flag(False)
        self.failUnless(not self.cp_obj.get_tiff_flag())
        
        self.cp_obj.set_image_size((4, 5))
        self.failUnless(self.cp_obj.get_image_size()== (4, 5))
        print self.cp_obj.get_pixel_size()
        self.cp_obj.set_pixel_size((6.1, 7.0))
        numpy.testing.assert_array_equal(self.cp_obj.get_pixel_size(), (6.1, 7))
        
        self.cp_obj.set_chfield(8)
        self.failUnless(self.cp_obj.get_chfield() == 8)
         
    # testing __richcmp__ comparison method of ControlParams class
    def test_rich_compare(self):
        self.cp_obj2 = ControlParams(4)
        self.cp_obj2.read_control_par(self.input_control_par_file_name)
        
        self.cp_obj3 = ControlParams(4)
        self.cp_obj3.read_control_par(self.input_control_par_file_name)
           
        self.failUnless(self.cp_obj2 == self.cp_obj3)
        self.failIf(self.cp_obj2 != self.cp_obj3)
           
        self.cp_obj2.set_hp_flag(False)
        self.failUnless(self.cp_obj2 != self.cp_obj3)
        self.failIf(self.cp_obj2 == self.cp_obj3)
        
        with self.assertRaises(TypeError):
            var = (self.cp_obj2 > self.cp_obj3)  # unhandled operator > 
      
    def tearDown(self):
        # remove the testing output directory and its files
        shutil.rmtree(self.temp_output_directory)