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

标签 python numpy image-processing slice numpy-slicing

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

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

是否可以不使用for循环而仅使用数组切片来做到这一点?

我的图像是一个形状为[height, width, 3]的numpy数组。我希望下面的代码分配一个二维 bool 数组,该数组显示每个像素的值是否为绿色([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)

关于python - 根据像素的颜色生成RGB图像的 bool 蒙版的最有效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59866085/

相关文章:

python - Django:本地化不带年份的日期

python - Pandas 按列值选择行,奇怪的行为

python - 如何在函数调用中将 DataFrame 解包为单独的系列?

python - 如何在 Python 2.7.2 中计算一组 GPS 卫星的 DOP 值?

python - 根据特定标准从图像中选择坐标

python - Opencv 和 python 中的 K 均值聚类 : Is there any option to cluster in mahalanobis distance?

python - 当查询以注释开始时,python 的 sqlite3 中的隐式提交

python - 将 numpy unit8 原始数组直接转换为 float32

python - 如何在 Python 中访问整数列表的特定位置?

r - 使用 R 中的计算机视觉在嘈杂数据中查找矩形