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

How to extract only the pixels of an image where it is masked? (Python numpy array operation)

我有一个图像及其相应的玉米棒掩码作为 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]]

如何获取 cob 的颜色像素(彩色图像中遮罩所在的所有像素)?

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

基本上,我必须将蒙版数组 (2D) 的维度扩展到与图像相同的维度(具有 3 个颜色通道的 3D)。

y=np.expand_dims(mask,axis=2)
newmask=np.concatenate((y,y,y),axis=2)

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

cob= img * newmask

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