[英]Applying a 2D numpy mask to grayscale image
我有一个256×256像素的2D蒙版,其像素值为0或255,以及一个匹配的灰度图像。 两者都有形状(256,256)。
我想在灰度图像上应用蒙版,因此生成的图像仅包含原始灰度图像中的像素,其中相应的蒙版值为255(应保留原始灰度像素值)。
我无法使用
img_clean = img_grayscale[mask]
因为它为数组增加了新的维度(如numpy的文档所述)。
我该如何解决?
只需添加第三个选项并就地修改您的灰度图像:
img_grayscale[mask == 255] = 0
PS:如果您不想就地修改,则只能创建一个副本。
我认为这应该做的
np.where(mask == 255, img_grayscale, 0)
有关文档,请参见https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html 。
可以使用按位AND来将像素值设置为0
,其中mask为0
:
img_clean = img_grayscale & mask
由于掩码包含0
或255
,因此根据您的要求,值可以保持不变或设置为0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.