File size: 1,269 Bytes
73c83cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os

import numpy as np
from PIL import Image

def save_output_image(image, base_path="outputs", base_filename="inputimage", seed=0):
    """Save an image with a unique filename in the specified directory."""
    if not os.path.exists(base_path):
        os.makedirs(base_path)
        
    # Check for existing files and create a new filename
    index = 0
    while True:
        if index == 0:
            filename = f"{base_filename}_seed_{seed}.png"
        else:
            filename = f"{base_filename}_{str(index).zfill(4)}_seed_{seed}.png"
        
        file_path = os.path.join(base_path, filename)
        if not os.path.exists(file_path):
            image.save(file_path)
            break
        index += 1
    return file_path

def pil_to_binary_mask(pil_image, threshold=0):
    np_image = np.array(pil_image)
    grayscale_image = Image.fromarray(np_image).convert("L")
    binary_mask = np.array(grayscale_image) > threshold
    mask = np.zeros(binary_mask.shape, dtype=np.uint8)
    for i in range(binary_mask.shape[0]):
        for j in range(binary_mask.shape[1]):
            if binary_mask[i,j] == True :
                mask[i,j] = 1
    mask = (mask*255).astype(np.uint8)
    output_mask = Image.fromarray(mask)
    return output_mask