def test_transform_about_centre(): pixels_16 = np.arange(16, dtype=np.float) image = Image(pixels_16.reshape(4, 4)) transform = Rotation.init_from_2d_ccw_angle(180).compose_before( UniformScale(2, n_dims=2)) # rotate 90 + scale degrees transformed_img = image.transform_about_centre(transform, order=0) expected_pixels = np.rot90(np.repeat(np.repeat(pixels_16, 2).reshape(4, -1), 2, axis=0)[1:, 1:], k=2) assert transformed_img.shape == (7, 7) assert_allclose(transformed_img.pixels[0], expected_pixels)
def test_transform_about_centre(method): pixels_16 = np.arange(16, dtype=np.float) image = Image(pixels_16.reshape(4, 4)) transform = Rotation.init_from_2d_ccw_angle(180).compose_before( UniformScale(2, n_dims=2) ) # rotate 180 + scale degrees transformed_img = image.transform_about_centre(transform, mode="nearest", order=1) expected_pixels = np.concatenate( [np.linspace(15 - 2 * i, 12 - 2 * i, num=7)[None] for i in range(7)] ) assert transformed_img.shape == (7, 7) assert_allclose(transformed_img.pixels[0], expected_pixels, rtol=1e-8, atol=1e-8)