我有两种颜色,A和B。我想在图像中交换A和B。
到目前为止,我写的是:
path_to_folders = "/path/to/images"
tifs = [f for f in listdir(path_to_folders) if isfile(join(path_to_folders, f))]
for tif in tifs:
img = imageio.imread(path_to_folders+"/"+tif)
colors_to_swap = itertools.permutations(np.unique(img.reshape(-1, img.shape[2]), axis=0), 2)
for colors in colors_to_swap:
new_img = img.copy()
new_img[np.where((new_img==colors[0]).all(axis=2))] = colors[1]
im = Image.fromarray(new_img)
im.save(path_to_folders+"/"+tif+"-"+str(colors[0])+"-for-"+str(colors[1])+".tif")
字符串
但是,保存到磁盘的图像中没有任何变化。我做错了什么?
3条答案
按热度按时间9fkzdhlc1#
据我所知,你的代码用颜色B替换了颜色A。你应该看到图像的变化,但不是颜色的交换:颜色A应该消失,颜色B应该出现在它的位置。
要交换两种颜色,您可以尝试以下操作:创建一个示例图像:
字符串
这给出了:
的数据
将
col1
与col2
交换(即红色与绿色):型
测试结果:
的
qqrboqgw2#
下面是一个简单的例子:
字符串
uubf1zoe3#
那么这个呢,基于this solution
字符串