1

理想情况下使用 Numpy 和 PIL,我想为我正在制作的图像分割程序制作一个颜色网格。并非所有颜色都必须是唯一的,但是,每种颜色都应该与其相邻颜色不同并且可以识别其位置。这个想法是创建一个叠加层,可以快速识别每个像素的 x,y 位置坐标。图像为 250x250。

4

1 回答 1

1

好吧,我搞砸了,想出了这样的事情:

import PIL.Image

def zoom(img, zoom):
    w, h = img.size
    print(w,h)
    zoom2 = zoom * 2
    return img.resize((w*zoom, h*zoom), PIL.Image.NEAREST)

green = 0
red = 0
blue = 0

img = np.zeros([10,10,3], dtype=np.uint8)

for i in range(10):
    green += 52
    blue += 45
    green %= 256
    blue %= 256
    img[i,:,1:] = [blue,green]
    
blue = 0
for j in range(10):
    red += 47
    blue += 48
    red %= 256
    blue %= 256
    img[:,j,0] = red
    img[:,j,2] = blue

grid = np.tile( img, [5, 5, 1])
grid = grid.astype(np.uint8)
zoom(PIL.Image.fromarray(grid), 8)

导致这张图片:

颜色网格

这只会生成一个 50x50 的网格,但在较大的图像上很难看到网格。我可能会尝试以另一种方式执行我的分段程序。这样做的一个好处是,您可以通过注释掉设置 x 颜色值的代码或设置 y 颜色值的代码来“调试”一半颜色。

于 2020-09-16T08:19:36.627 回答