如何仅提取图像中被屏蔽的像素?(Python numpy 数组运算)

Oly*_*pia 2 python numpy image mask

我有一个图像及其相应的 cob 掩码作为 numpy 数组:

图像

面具

图像 numpy 数组的形状为 (332, 107, 3)。

掩码是布尔值(由 True/False 组成),并且具有二进制形状 (332, 107)。

 [[False False False ... False False False]
 [False False False ... False False False]
 [False False False ... False False False]
 ...
 [False False False ... False False False]
 [False False False ... False False False]
 [False False False ... False False False]]
Run Code Online (Sandbox Code Playgroud)

如何获取玉米棒子的颜色像素(蒙版所在的彩色图像中的所有像素)?

Oly*_*pia 5

感谢 M.Setchel 的有用评论,我自己找到了答案。

基本上,我必须将掩模阵列 (2D) 的尺寸扩展到图像的相同尺寸(具有 3 个颜色通道的 3D)。

y=np.expand_dims(mask,axis=2)
newmask=np.concatenate((y,y,y),axis=2)
Run Code Online (Sandbox Code Playgroud)

然后我必须简单地将新蒙版与图像相乘以获得彩色蒙版:

cob= img * newmask
Run Code Online (Sandbox Code Playgroud)

这里只是为了可视化结果:

在此输入图像描述