示例#1
0
    def test_iter_resize(self):
        class TestOperator(ops.PixelComparisonOperator):
            def target_image_to_repr(self, image):
                return image, None

            def input_image_to_repr(self, image, ctx):
                pass

            def calculate_score(self, input_repr, target_repr, ctx):
                pass

        initial_image_size = (5, 4)
        edge_sizes = (2, 4)

        torch.manual_seed(0)
        target_guide = torch.rand((1, 3, *initial_image_size))
        target_image = torch.rand((1, 3, *initial_image_size))
        input_guide = torch.rand((1, 3, *initial_image_size))

        aspect_ratio = calculate_aspect_ratio(initial_image_size)
        image_sizes = [
            edge_to_image_size(edge_size, aspect_ratio) for edge_size in edge_sizes
        ]

        op = TestOperator()
        op.set_target_guide(target_guide)
        op.set_target_image(target_image)
        op.set_input_guide(input_guide)

        image_pyramid = pyramid.ImagePyramid(edge_sizes, 1, resize_targets=(op,))
        for pyramid_level, image_size in zip(image_pyramid, image_sizes):
            for attr in ("target_guide", "target_image", "input_guide"):
                actual = extract_image_size(getattr(op, attr))
                desired = image_size
                assert actual == desired
示例#2
0
def test_calculate_aspect_ratio():
    height = 2
    width = 3
    image_size = (height, width)

    actual = image_.calculate_aspect_ratio(image_size)
    desired = width / height
    assert actual == pytest.approx(desired)
示例#3
0
def test_read_image_resize_scalar(test_image_file, test_image_pil):
    edge_size = 200

    aspect_ratio = image_.calculate_aspect_ratio(
        (test_image_pil.height, test_image_pil.width)
    )
    image_size = image_.edge_to_image_size(edge_size, aspect_ratio)

    actual = image_.read_image(test_image_file, size=edge_size)
    desired = test_image_pil.resize(image_size[::-1])
    pyimagetest.assert_images_almost_equal(actual, desired)
 def transform(image):
     aspect_ratio = calculate_aspect_ratio(image.size[::-1])
     image_size = edge_to_image_size(edge_size, aspect_ratio, edge)
     size = image_size[::-1]
     return image.resize(size, resample=Image.BILINEAR)