获取所有与颜色不同的像素并将其绘制在其他图像中

我有尺寸为(512,512,3)的图像A。
我想找到所有像素=![255,255,255]。
给定这些像素,我想在另一张图像B中为这些坐标着色。
我在做什么错?

indices = np.where(imgA!= [255,255,255])
imgB[indices] = [0,0,0]


红糖糍粑
浏览 126回答 2
2回答

慕慕森

此模板应该使您走上正确的道路:from PIL import imagepicture = Image.open(path_to_picture)width, height = picture.sizefor x in range(width):    for y in range(height):        current_color = picture.getpixel( (x,y) )        if current_color[0:3]!=(255,255,255):            picture.putpixel( (x,y), (***, ***,***) + (current_color[-1],))picture.save(path_to_new_picture)请注意,此处getpixel()将返回一个元组,其中包含给定像素的RGBA值。在此示例中,我假设您保留了alpha值,并且只是修改了当前像素的RGB值。

慕尼黑8549860

您需要遍历图像中的每个像素。...imgA!= [255,255,255]将始终返回true,因为您正在将(512,512,3)nd.array与(3,)nd.array进行比较即使您的图像不是由numpy矩阵构建的,这一点仍然适用。如果遇到性能问题,请使用cython加快循环速度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python