def test_transforms(self):
        """Transform in well-known setup gives precalculates results."""
        cpar = ControlParams(1)
        cpar.set_image_size((1280, 1000))
        cpar.set_pixel_size((0.1, 0.1))

        metric_pos = np.array([[1., 1.], [-10., 15.], [20., -30.]])
        pixel_pos = np.array([[650., 490.], [540., 350.], [840., 800.]])

        np.testing.assert_array_almost_equal(
            pixel_pos, convert_arr_metric_to_pixel(metric_pos, cpar))
        np.testing.assert_array_almost_equal(
            metric_pos, convert_arr_pixel_to_metric(pixel_pos, cpar))
class Test_image_processing(unittest.TestCase):
    def setUp(self):
        self.input_img = np.array(
            [[0, 0, 0, 0, 0], [0, 255, 255, 255, 0], [0, 255, 255, 255, 0],
             [0, 255, 255, 255, 0], [0, 0, 0, 0, 0]],
            dtype=np.uint8)
        self.filter_hp = 0
        self.control = ControlParams(4)
        self.control.set_image_size((5, 5))

    def test_arguments(self):
        with self.assertRaises(ValueError):
            preprocess_image(self.input_img,
                             self.filter_hp,
                             self.control,
                             lowpass_dim=1,
                             output_img=np.empty((5, 4), dtype=np.uint8))

        with self.assertRaises(ValueError):
            # 3d output
            preprocess_image(self.input_img,
                             self.filter_hp,
                             self.control,
                             lowpass_dim=1,
                             output_img=np.empty((5, 5, 5), dtype=np.uint8))

        with self.assertRaises(ValueError):
            # filter_hp=2 but filter_file=None
            preprocess_image(self.input_img,
                             2,
                             self.control,
                             output_img=np.empty((5, 5), dtype=np.uint8))

    def test_preprocess_image(self):
        correct_res = np.array(
            [[0, 0, 0, 0, 0], [0, 142, 85, 142, 0], [0, 85, 0, 85, 0],
             [0, 142, 85, 142, 0], [0, 0, 0, 0, 0]],
            dtype=np.uint8)

        res = preprocess_image(self.input_img,
                               self.filter_hp,
                               self.control,
                               lowpass_dim=1,
                               filter_file=None,
                               output_img=None)

        np.testing.assert_array_equal(res, correct_res)
Example #3
0
class Test_image_processing(unittest.TestCase):
        
    def setUp(self):
        self.input_img = np.array([[ 0, 0, 0, 0, 0],
                               [ 0, 255, 255, 255, 0],
                               [ 0, 255, 255, 255, 0],
                               [ 0, 255, 255, 255, 0],
                               [ 0, 0, 0, 0, 0]], dtype=np.uint8)
        self.filter_hp = 0
        self.control = ControlParams(4)
        self.control.set_image_size((5, 5))
        
    def test_arguments(self):
        with self.assertRaises(ValueError):
            preprocess_image(self.input_img, self.filter_hp, self.control,
                             lowpass_dim=1, output_img=np.empty((5, 4), dtype=np.uint8))
        
       
        with self.assertRaises(ValueError):
            # 3d output
            preprocess_image(self.input_img, self.filter_hp, self.control,
                             lowpass_dim=1, output_img=np.empty((5, 5, 5), dtype=np.uint8))
            
        with self.assertRaises(ValueError):
            # filter_hp=2 but filter_file=None
            preprocess_image(self.input_img, 2, self.control, output_img=np.empty((5, 5), dtype=np.uint8))
        
    def test_preprocess_image(self):
        correct_res = np.array([[ 0, 0, 0, 0, 0],
                                [ 0, 142, 85, 142, 0],
                                [ 0, 85, 0, 85, 0],
                                [ 0, 142, 85, 142, 0],
                                [ 0, 0, 0, 0, 0]],
                               dtype=np.uint8)
        
        res = preprocess_image(self.input_img,
                               self.filter_hp,
                               self.control,
                               lowpass_dim=1,
                               filter_file=None,
                               output_img=None)
        
        np.testing.assert_array_equal(res, correct_res)
Example #4
0
 def test_transforms(self):
     """Transform in well-known setup gives precalculates results."""
     cpar = ControlParams(1)
     cpar.set_image_size((1280, 1000))
     cpar.set_pixel_size((0.1, 0.1))
     
     metric_pos = np.array([
         [1., 1.],
         [-10., 15.],
         [20., -30.]
     ])
     pixel_pos = np.array([
         [650., 490.],
         [540., 350.],
         [840., 800.]
     ])
     
     np.testing.assert_array_almost_equal(pixel_pos, 
         convert_arr_metric_to_pixel(metric_pos, cpar))
     np.testing.assert_array_almost_equal(metric_pos, 
         convert_arr_pixel_to_metric(pixel_pos, cpar))
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)