为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红糖糍粑 2021-05-05 13:16:53
我有尺寸为(512,512,3)的图像A。我想找到所有像素=![255,255,255]。给定这些像素,我想在另一张图像B中为这些坐标着色。我在做什么错?indices = np.where(imgA!= [255,255,255]) imgB[indices] = [0,0,0]
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

此模板应该使您走上正确的道路:


from PIL import image


picture = Image.open(path_to_picture)


width, height = picture.size


for 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值。


查看完整回答
反对 回复 2021-05-25
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您需要遍历图像中的每个像素。

...imgA!= [255,255,255]将始终返回true,因为您正在将(512,512,3)nd.array与(3,)nd.array进行比较

即使您的图像不是由numpy矩阵构建的,这一点仍然适用。如果遇到性能问题,请使用cython加快循环速度。


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号