Добавить 2 изображения вместе на основе маски - PullRequest
0 голосов
/ 11 января 2019

Предположим, у меня есть изображения A, B и M. Цель состоит в том, чтобы взять изображение A в качестве фона, а затем смешать изображение B с изображением A, но только в областях маски M.

Таким образом, если пиксель лежит в черной области маски, этот пиксель идентичен тому же пикселю в A. Но если пиксель находится в белой области маски, этот результирующий пиксель должен представлять собой смесь пикселей. в А и В.

Есть ли у OpenCV метод для достижения этой цели?

1 Ответ

0 голосов
/ 11 января 2019

Попробуй это. У вас есть 2 изображения в виде пустых массивов (форма = ширина, высота, 3). Вы находите только те пиксели, которые не черные ([0,0,0]) - вы получаете индекс (массив с индексами) и сгибаете только те.

#bcg - background
#mask - mask
#indice - indexes of pixels that are not black

indice =np.where(np.any(mask!=0, axis=2))
bcg.setflags(write=True) # maybe not needed, but sometimes array is write-blocked
bcg[indice]=mask[indice]+bcg[indice] # or (mask[indice]+bcg[indice])/2 - depends on your bending algorithm
...