двоичные метки - это просто матрицы размера изображения, имеющие либо 0, либо 1 значение. Когда применяется маска, все, что происходит, это то, что каждое значение умножается на значение маски, если пиксель должен быть удален, значение маски0, следовательно, при умножении вы получите черный пиксель, если его не нужно удалять, исходное значение сохраняется, так как оно умножено на 1.
Чтобы объединить маски, просто добавьте маски вместе, любую область, которая являетсяне должно быть маскировано, останется 0.
После этого просто сделайте что-то вроде этого
combined_masks[combined_masks > 1] = 1
Это снова преобразует вашу маску в двоичную маску
Так что в основномДумайте об этом как о диаграмме Венна, если в качестве маски вы бы выбрали 2 перекрывающихся круга, объединение этих кругов было бы объединенной маской
Как видно ниже, A и B - ваши маски, а серыйобласть, их «союз» - это ваша комбинированная маска
ОБНОВЛЕНИЕ ::: Если вы хотите, чтобы общий регион был только среди этихмаски, вы все равно можете добавить маски вместе и сделать следующее
combined_masks /= total_num_masks
combined_masks[combined_masks < 1] = 0
ОБНОВЛЕНИЕ ::: Если у вас есть n масок формы img_w, img_h, это то, как вы бы их объединили.
unified_masks = np.zeros((img_w, img_h))
for mask in list_of_masks:
unified_masks += mask
unified_masks[unified_masks > 1] = 1