File size: 1,508 Bytes
70be616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import numpy as np
import torch
from PIL import Image
from torchvision.transforms.functional import pil_to_tensor


def convert_pil_to_normalized_tensor(image: Image) -> torch.Tensor:
    return pil_to_tensor(image).unsqueeze(0).float()


def convert_normalized_tensor_to_np_image(image: torch.Tensor) -> np.array:
    return image.clip(0, 1).squeeze(0).permute(1, 2, 0).detach().cpu().numpy()


def add_position_pattern(
    x: torch.Tensor,
    y: torch.Tensor,
    module_num: int,
    module_size: int
) -> torch.Tensor:

    x[: 8 * module_size - 1, : 8 * module_size - 1, :] = \
        y[: 8 * module_size - 1, : 8 * module_size - 1, :]

    x[
        (module_num - 8) * module_size + 1 : module_num * module_size,
        : 8 * module_size - 1,
        :
    ] = y[
        (module_num - 8) * module_size + 1 : module_num * module_size,
        : 8 * module_size - 1,
        :
    ]

    x[
        : 8 * module_size - 1,
        (module_num - 8) * module_size + 1 : module_num * module_size,
        :
    ] = y[
        : 8 * module_size - 1,
        (module_num - 8) * module_size + 1 : module_num * module_size,
        :
    ]

    x[
        (module_num - 9) * module_size : (module_num - 4) * module_size - 1,
        (module_num - 9) * module_size : (module_num - 4) * module_size - 1,
        :
    ] = y[
        (module_num - 9) * module_size : (module_num - 4) * module_size - 1,
        (module_num - 9) * module_size : (module_num - 4) * module_size - 1,
        :
    ]
    return x