[英]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.