Наложить png изображение на другую картинку через openCV на python
Уже несколько дней не могу понять, как наложить два изображения друг на друга через OpenCv. Нашёл один способ, но он работает только с изображениями одного размера, а в моём случае они разного размера. Как сделать так, чтобы картинка нормально вставлялась в определённом месте (в координатах)? P.S Сейчас использую Pil, но он долго генерирует картинку(
import numpy as np
import cv2
def blend_transparent(face_img, overlay_t_img):
overlay_img = overlay_t_img[:, :, :3]
overlay_mask = overlay_t_img[:, :, 3:]
background_mask = 255 - overlay_mask
overlay_mask = cv2.cvtColor(overlay_mask, cv2.COLOR_GRAY2BGR)
background_mask = cv2.cvtColor(background_mask, cv2.COLOR_GRAY2BGR)
face_part = (face_img * (1 / 255.0)) * (background_mask * (1 / 255.0))
overlay_part = (overlay_img * (1 / 255.0)) * (overlay_mask * (1 / 255.0))
return np.uint8(cv2.addWeighted(face_part, 255.0, overlay_part, 255.0, 0.0))
face_img = cv2.imread("bg.png")
overlay_t_img = cv2.imread("Arthor.png", -1)
result_2 = blend_transparent(face_img, overlay_t_img)
cv2.imwrite("merged_transparent.png", result_2)