Прозрачная укладка изображений поверх фонового изображения - PullRequest
1 голос
/ 04 марта 2020

Каков оптимальный способ объединения следующих двух изображений:

enter image description here

enter image description here

поверх, например, такого фона, чтобы черные пиксели на двух входах были прозрачными? Альфа-смешивание было моим первоначальным подходом, но, поскольку у меня есть изображения, которые мне нужно было бы поместить на фон, это массивы numpy без альфа-канала, что стало большой проблемой.

Это фоновый слой, на котором другие изображения должны быть сложены.

enter image description here

Это ожидаемый результат:

enter image description here

1 Ответ

2 голосов
/ 04 марта 2020

Вы можете сделать это следующим образом:

#!/usr/bin/env python3

import cv2

# Load all three images - "c" is the background
a= cv2.imread('a.png')
b= cv2.imread('b.png')
c= cv2.imread('c.png')

# Chop all to same size as smallest
a=a[:632,:474]
b=b[:632,:474]
c=c[:632,:474]

# Mask where a is not black, and copy those bits to c
mask = np.all(a[...,:]>0,axis=2)
c[mask]=a[mask]

# Mask where b is not black, and copy those bits to c
mask = np.all(b[...,:]>0,axis=2)
c[mask]=b[mask]

Your result is now in "c"

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...