图像分割:把img和mask合并在一起,查看分割效果

分割任务之后总是想检查下img和mask是否匹配,我们需要把两张图放在一起看,下面就是操作。

img = Image.open(file)
masked_image = np.array(img).copy()
# 把img和mask合并
colors = random_colors(10)
color = colors[6]

masked_image = apply_mask(masked_image, labels_arr, color)

masked_image_save = Image.fromarray(masked_image.astype(np.uint8))
masked_image_save.save('G:/xiao/dataset_molcreate/create_ann/mask/' + str(i) + '.png')

需要用到的函数在下面

def random_colors(N, bright=True):
    """
    Generate random colors.
    To get visually distinct colors, generate them in HSV space then
    convert to RGB.
    """
    brightness = 1.0 if bright else 0.7
    hsv = [(i / N, 1, brightness) for i in range(N)]
    colors = list(map(lambda c: colorsys.hsv_to_rgb(*c), hsv))
    random.shuffle(colors)
    return colors

def apply_mask(image, mask, color, alpha=0.5):
    """Apply the given mask to the image.
    """
    for c in range(3):
        image[:, :, c] = np.where(mask == 1, image[:, :, c] * (1 - alpha) + alpha * color[c] * 255, image[:, :, c])
    return image

用到的库

import colorsys
import random
from PIL import Image

结果展示

你可能感兴趣的:(小骨子的工作所记,图像的处理,python,图像处理)