我有一个图像,其中有一个丢失的部分,我知道该颜色已涂成绿色(第一个图像)。生成另一个“布尔”图像的最Python方法是什么,该图像显示缺失部分为白色,而缺失部分为黑色(第二个图像)?
是否有可能不使用for循环,而仅使用数组切片呢?
我的图像是一个形状为[height, width, 3]
的numpy数组。我希望下面的代码分配一个二维布尔数组,以显示每个像素的值是否为绿色([0, 255, 0]
)。
mask = image[:, :] == [0, 255, 0]
但是,它返回与图像([height, width, 3]
)相同形状的数组,显示像素的红色,绿色或蓝色值分别是0、255还是0。我可以在这里使用any()
或all()
方法吗?
您在这里有正确的想法。使用的是numpy的alltrue
:
mask = np.alltrue(image == [0, 255, 0], axis=2)