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))
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))
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))