Наложить 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)

Ответы (0 шт):