通过在python中合并其他两个遮罩来创建新的灰度遮罩图像

时间:2020-07-14 16:12:26

标签: python numpy opencv mask cv2

我有两个遮罩,所需的遮罩结果如下所示:

2 original masks and the desired result

我想通过组合前两个遮罩来创建所需的遮罩结果。但是,我只想生成重叠的白色区域。如果它们不重叠,则该区域应保持黑色。我不确定如何进行。

此刻,我已经通过cv2导入了图像,并基于原始图像的尺寸创建了第三个numpy数组。然后,我遍历两个掩码,并根据两个值(255或0)是否相同来设置条件。如果是,那么我要存储它们或将它们设置在新的蒙版中...:

necrosis_mask_observer_1 = cv2.imread(mask1, 0)
necrosis_mask_observer_2 = cv2.imread(mask2, 0)

map = np.empty(necrosis_mask_observer_1.shape)

height, width = map.shape

# do something here?

for i in range(width):
     for j in range(height):

         necrosis_mask_observer_1_sum = necrosis_mask_observer_1[j : (j+1), i : (i+1)].sum()
         necrosis_mask_observer_2_sum = necrosis_mask_observer_2[j : (j+1), i : (i+1)].sum()

         if necrosis_mask_observer_1_sum == necrosis_mask_observer_2_sum:

         #do something here?
         else:
              continue 


1 个答案:

答案 0 :(得分:0)

您可以在Python / OpenCV中按位操作。

面具1:

enter image description here

Mask2:

enter image description here

import cv2

# read mask 1
mask1 = cv2.imread('mask1.png')

# read mask 2
mask2 = cv2.imread('mask2.png')

# combine mask
mask3 = cv2.bitwise_and(mask1,mask2)

# save result
cv2.imwrite("mask3.png",mask3)

# show result
cv2.imshow('mask3', mask3)
cv2.waitKey(0)

组合面膜:

enter image description here

相关问题