コード例 #1
0
    def test_normalize_angle(self):
        angle1 = 20.5
        angle2 = 380.5
        angle3 = -339.5
        angle4 = -699.5
        angle5 = -1059.5

        self.assertEqual(angle1, mpf_util.normalize_angle(angle1))
        self.assertEqual(angle1, mpf_util.normalize_angle(angle2))
        self.assertEqual(angle1, mpf_util.normalize_angle(angle3))
        self.assertEqual(angle1, mpf_util.normalize_angle(angle4))
        self.assertEqual(angle1, mpf_util.normalize_angle(angle5))

        self.assertTrue(mpf_util.rotation_angles_equal(angle1, angle1))
        self.assertTrue(mpf_util.rotation_angles_equal(angle1, angle2))
        self.assertTrue(mpf_util.rotation_angles_equal(angle1, angle3))
        self.assertTrue(mpf_util.rotation_angles_equal(angle1, angle4))
        self.assertTrue(mpf_util.rotation_angles_equal(angle1, angle5))

        self.assertEqual(0, mpf_util.normalize_angle(0))
        self.assertEqual(0, mpf_util.normalize_angle(360))
コード例 #2
0
    def _assert_reverse_transform(self, image_reader, pre_transform_values,
                                  post_transform_values):
        il = mpf.ImageLocation(*pre_transform_values)
        image_reader.reverse_transform(il)
        self.assertEqual(post_transform_values[0], il.x_left_upper)
        self.assertEqual(post_transform_values[1], il.y_left_upper)
        self.assertEqual(post_transform_values[2], il.width)
        self.assertEqual(post_transform_values[3], il.height)

        expected_rotation = post_transform_values[4] if len(
            post_transform_values) > 4 else 0
        actual_rotation = mpf_util.get_property(il.detection_properties,
                                                'ROTATION', 0.0)
        self.assertTrue(
            mpf_util.rotation_angles_equal(expected_rotation, actual_rotation))
コード例 #3
0
    def test_search_region_with_non_orthogonal_rotation(self):
        job = mpf.ImageJob(
            'Test',
            test_util.get_data_file_path('rotation/20deg-bounding-box.png'),
            dict(ROTATION='20',
                 SEARCH_REGION_ENABLE_DETECTION='true',
                 SEARCH_REGION_TOP_LEFT_X_DETECTION='199',
                 SEARCH_REGION_TOP_LEFT_Y_DETECTION='245',
                 SEARCH_REGION_BOTTOM_RIGHT_X_DETECTION='299',
                 SEARCH_REGION_BOTTOM_RIGHT_Y_DETECTION='285'), {}, None)
        image_reader = mpf_util.ImageReader(job)
        img = image_reader.get_image()
        self.assert_image_color(img, (255, 0, 0))

        il = mpf.ImageLocation(0, 0, img.shape[1], img.shape[0])
        image_reader.reverse_transform(il)
        self.assertEqual(117, il.x_left_upper)
        self.assertEqual(218, il.y_left_upper)
        self.assertEqual(100, il.width)
        self.assertEqual(40, il.height)
        actual_rotation = mpf_util.get_property(il.detection_properties,
                                                'ROTATION', 0.0)
        self.assertTrue(mpf_util.rotation_angles_equal(20, actual_rotation))