Пример #1
0
def test_c_warp_gray():
    target_transform = Affine.identity(2).from_vector(initial_params)
    warped_im = gray_image.warp_to(template_mask, target_transform,
                                   interpolator='c')

    assert(warped_im.shape == gray_template.shape)
    assert_allclose(warped_im.pixels, gray_template.pixels)
Пример #2
0
def test_warp_multi():
    rgb_image = mio.import_builtin_asset('takeo.ppm')
    target_transform = Affine.identity(2).from_vector(initial_params)
    warped_im = rgb_image.warp_to_mask(template_mask, target_transform)

    assert(warped_im.shape == rgb_template.shape)
    assert_allclose(warped_im.pixels, rgb_template.pixels)
Пример #3
0
def test_affine_jacobian_2d_with_positions():
    params = np.array([0, 0.1, 0.2, 0, 30, 70])
    t = Affine.identity(2).from_vector(params)
    explicit_pixel_locations = np.array([[0, 0], [0, 1], [0, 2], [1, 0],
                                         [1, 1], [1, 2]])
    dW_dp = t.d_dp(explicit_pixel_locations)
    assert_equal(dW_dp, jac_solution2d)
Пример #4
0
def residual_wrapper(residual, algorithm, interpolator, expected_error):
    image, template, initial_params = setup_conditions(interpolator)
    align_algorithm = algorithm(template, residual,
                                Affine.identity(2).from_vector(initial_params))
    fitting = align_algorithm.fit(image, initial_params)
    transform = fitting.final_transform
    rms_error = compute_fixed_error(transform)
    assert_approx_equal(rms_error, expected_error)
Пример #5
0
def setup_error():
    target_transform = Affine.identity(2).from_vector(target_params)
    original_box = np.array([[0, 0], [target_shape[0], 0],
                             [target_shape[0], target_shape[1]],
                             [0, target_shape[1]]]).T
    target_pts = target_transform.apply(original_box.T)

    return target_pts, original_box
Пример #6
0
def test_affine_jacobian_3d_with_positions():
    params = np.ones(12)
    t = Affine.identity(3).from_vector(params)
    explicit_pixel_locations = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 0],
                                         [0, 1, 1], [0, 2, 0], [0, 2, 1],
                                         [1, 0, 0], [1, 0, 1], [1, 1, 0],
                                         [1, 1, 1], [1, 2, 0], [1, 2, 1]])
    dW_dp = t.d_dp(explicit_pixel_locations)
    assert_equal(dW_dp, jac_solution3d)
Пример #7
0
def residual_wrapper(residual, algorithm, interpolator, expected_error):
    image, template, initial_params = setup_conditions(interpolator)
    align_algorithm = algorithm(
        template, residual, Affine.identity(2).from_vector(
            initial_params))
    fitting = align_algorithm.fit(image, initial_params)
    transform = fitting.final_transform
    rms_error = compute_fixed_error(transform)
    assert_approx_equal(rms_error, expected_error)
Пример #8
0
def setup_error():
    target_transform = Affine.identity(2).from_vector(target_params)
    original_box = np.array([[0,               0],
                             [target_shape[0], 0],
                             [target_shape[0], target_shape[1]],
                             [0,               target_shape[1]]]).T
    target_pts = target_transform.apply(original_box.T)

    return target_pts, original_box
Пример #9
0
def test_warp_to_mask_image():
    img = Image.blank((10, 10), n_channels=2)
    img.pixels[:, :5, :] = 0.5
    template_mask = BooleanImage.blank((10, 10))
    template_mask.pixels[5:, :] = False
    t = Affine.identity(2)
    warped_img = img.warp_to_mask(template_mask, t)
    assert(type(warped_img) == MaskedImage)
    result = Image.blank((10, 10), n_channels=2).pixels
    result[:5, :5, :] = 0.5
    assert(np.all(result == warped_img.pixels))
Пример #10
0
def test_warp_to_mask_boolean():
    b = BooleanImage.blank((10, 10))
    b.pixels[:, :5] = False
    template_mask = BooleanImage.blank((10, 10))
    template_mask.pixels[:5, :] = False
    t = Affine.identity(2)
    warped_mask = b.warp_to_mask(template_mask, t)
    assert(type(warped_mask) == BooleanImage)
    result = template_mask.pixels.copy()
    result[:, :5] = False
    assert(np.all(result == warped_mask.pixels))
Пример #11
0
def test_affine_jacobian_2d_with_positions():
    params = np.array([0, 0.1, 0.2, 0, 30, 70])
    t = Affine.identity(2).from_vector(params)
    explicit_pixel_locations = np.array(
        [[0, 0],
        [0, 1],
        [0, 2],
        [1, 0],
        [1, 1],
        [1, 2]])
    dW_dp = t.d_dp(explicit_pixel_locations)
    assert_equal(dW_dp, jac_solution2d)
Пример #12
0
def test_warp_to_mask_masked_image():
    mask = BooleanImage.blank((10, 10))
    # make a funny mask on the original image
    mask.pixels[2:, :] = False
    img = MaskedImage.blank((10, 10), n_channels=2, mask=mask)
    img.pixels[...] = 2.5
    template_mask = BooleanImage.blank((10, 10), fill=False)
    template_mask.pixels[:5, :5] = True
    t = Affine.identity(2)
    warped_img = img.warp_to_mask(template_mask, t)
    assert(type(warped_img) == MaskedImage)
    result = Image.blank((10, 10), n_channels=2).pixels
    result[:5, :5, :] = 2.5
    result_mask = BooleanImage.blank((10, 10), fill=False).pixels
    result_mask[:2, :5] = True
    assert(warped_img.n_true_pixels() == 10)
    assert(np.all(result == warped_img.pixels))
    assert(np.all(result_mask == warped_img.mask.pixels))
Пример #13
0
def test_affine_jacobian_3d_with_positions():
    params = np.ones(12)
    t = Affine.identity(3).from_vector(params)
    explicit_pixel_locations = np.array(
        [[0, 0, 0],
        [0, 0, 1],
        [0, 1, 0],
        [0, 1, 1],
        [0, 2, 0],
        [0, 2, 1],
        [1, 0, 0],
        [1, 0, 1],
        [1, 1, 0],
        [1, 1, 1],
        [1, 2, 0],
        [1, 2, 1]])
    dW_dp = t.d_dp(explicit_pixel_locations)
    assert_equal(dW_dp, jac_solution3d)
Пример #14
0
def test_affine_identity_2d():
    assert_allclose(Affine.identity(2).h_matrix, np.eye(3))
Пример #15
0
def test_scipy_warp_multi():
    target_transform = Affine.identity(2).from_vector(initial_params)
    warped_im = rgb_image.warp_to(template_mask, target_transform)

    assert (warped_im.shape == rgb_template.shape)
    assert_allclose(warped_im.pixels, rgb_template.pixels)
Пример #16
0
def test_affine_compose_inplace_affine():
    a = Affine.identity(2)
    b = Affine.identity(2)
    a.compose_before_inplace(b)
    assert (np.all(a.h_matrix == b.h_matrix))
Пример #17
0
def test_affine_compose_inplace_affine():
    a = Affine.identity(2)
    b = Affine.identity(2)
    a.compose_before_inplace(b)
    assert(np.all(a.h_matrix == b.h_matrix))
Пример #18
0
def test_scipy_warp_multi():
    target_transform = Affine.identity(2).from_vector(initial_params)
    warped_im = rgb_image.warp_to(template_mask, target_transform)

    assert(warped_im.shape == rgb_template.shape)
    assert_allclose(warped_im.pixels, rgb_template.pixels)
Пример #19
0
def test_affine_identity_3d():
    assert_allclose(Affine.identity(3).h_matrix, np.eye(4))
Пример #20
0
def test_affine_identity_2d():
    assert_allclose(Affine.identity(2).h_matrix, np.eye(3))
Пример #21
0
def setup_conditions(interpolator):
    target_transform = Affine.identity(2).from_vector(target_params)
    image_warped = image.warp_to(template_mask, target_transform,
                                 interpolator=interpolator)
    return image, image_warped, initial_params
Пример #22
0
def test_affine_identity_3d():
    assert_allclose(Affine.identity(3).h_matrix, np.eye(4))
Пример #23
0
def setup_conditions(interpolator):
    target_transform = Affine.identity(2).from_vector(target_params)
    image_warped = image.warp_to(template_mask,
                                 target_transform,
                                 interpolator=interpolator)
    return image, image_warped, initial_params