根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

问题描述 投票:1回答:1

我有一个图像,其中有一个丢失的部分,我知道该颜色已涂成绿色(第一个图像)。生成另一个“布尔”图像的最Python方法是什么,该图像显示缺失部分为白色,而缺失部分为黑色(第二个图像)?

Image with missing part coloured in greenImage that shows the missing part (mask) in white, and the rest in black

是否有可能不使用for循环,而仅使用数组切片呢?

我的图像是一个形状为[height, width, 3]的numpy数组。我希望下面的代码分配一个二维布尔数组,以显示每个像素的值是否为绿色([0, 255, 0])。

mask = image[:, :] == [0, 255, 0]

但是,它返回与图像([height, width, 3])相同形状的数组,显示像素的红色,绿色或蓝色值分别是0、255还是0。我可以在这里使用any()all()方法吗?

python numpy image-processing slice numpy-slicing
1个回答
0
投票

您在这里有正确的想法。使用的是numpy的alltrue

mask = np.alltrue(image == [0, 255, 0], axis=2)

© www.soinside.com 2019 - 2024. All rights reserved.