File size: 957 Bytes
543832d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np
from PIL import Image

import segmentation_utils as utils


def test_resize_for_output_preserves_aspect_ratio():
    image = Image.new("RGB", (4000, 2000), "white")
    resized = utils.resize_for_output(image, max_side=1000)
    assert resized.size == (1000, 500)


def test_class_table_is_sorted_and_thresholded():
    class_map = np.array([[0, 0], [0, 1]], dtype=np.uint8)
    rows = utils.build_class_table(
        class_map,
        {0: "road", 1: "sidewalk"},
        min_share_percent=30.0,
    )
    assert rows == [[0, "road", 3, 75.0, "#804080"]]


def test_render_segmentation_matches_input_size():
    image = Image.new("RGB", (3, 2), "black")
    class_map = np.array([[0, 0, 1], [0, 1, 1]], dtype=np.uint8)
    overlay, mask = utils.render_segmentation(
        image,
        class_map,
        {0: "road", 1: "sidewalk"},
        opacity=0.5,
    )
    assert overlay.size == image.size
    assert mask.size == image.size