Наложить изображение на изображение при помощи OpenCV
Фон:
Накладываемое изображение:
Результат:
Скрипт:
import cv2 as cv
img1 = cv.imread('bg.jpg')
img2 = cv.imread('dice.png')
brows, bcols = img1.shape[:2]
rows,cols,channels = img2.shape
# Ниже я изменил roi, чтобы картинка выводилась посередине, а не в левом верхнем углу
roi = img1[int(brows/2)-int(rows/2):int(brows/2)+int(rows/2), int(bcols/2)-
int(cols/2):int(bcols/2)+int(cols/2) ]
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret, mask = cv.threshold(img2gray, 10, 255, cv.THRESH_BINARY)
mask_inv = cv.bitwise_not(mask)
img1_bg = cv.bitwise_and(roi,roi,mask = mask_inv)
img2_fg = cv.bitwise_and(img2,img2,mask = mask)
dst = cv.add(img1_bg,img2_fg)
img1[int(brows/2)-int(rows/2):int(brows/2)+int(rows/2), int(bcols/2)-
int(cols/2):int(bcols/2)+int(cols/2) ] = dst
cv.imwrite('res.jpg',img1)