Python 使用布尔数组屏蔽opencv bgr的最有效方法
我有一张用opencv加载的图像,带有Python 使用布尔数组屏蔽opencv bgr的最有效方法,python,numpy,opencv,Python,Numpy,Opencv,我有一张用opencv加载的图像,带有img.shape=(208、117、3)。我还有一个带有mask.shape=(208,117)的布尔numpy数组。如何使img(0,0,0)中的所有像素在掩码为False的位置,否则保持像素不变?答案为 img[~mask,:]=[0,0,0] 这个,:处理其他维度,这样就不会出现不匹配的问题。让广播处理形状,嗯,这并不能解决我的问题。该解决方案具有不同大小的输出。我希望输出img的大小相同。我的掩码为false的所有像素都应该为零。粗略的伪代码:a[
img.shape=(208、117、3)
。我还有一个带有mask.shape=(208,117)
的布尔numpy数组。如何使img
(0,0,0)
中的所有像素在掩码为False的位置,否则保持像素不变?答案为
img[~mask,:]=[0,0,0]
这个,:
处理其他维度,这样就不会出现不匹配的问题。让广播处理形状,嗯,这并不能解决我的问题。该解决方案具有不同大小的输出。我希望输出img的大小相同。我的掩码为false的所有像素都应该为零。粗略的伪代码:a[mask]=(0,0,0)
大致就是您想要的。遮罩仅允许您访问相关像素,您仍然需要将其设置为something@sshashank124你的回答激励了我。见下面我的答案。谢谢你。@Mika看起来不是,但我仍然认为答案中的方法是好的