Я взял следующие изображения, например:
Первое изображение:
![enter image description here](https://i.stack.imgur.com/21Ebj.png)
Второе изображение:
![enter image description here](https://i.stack.imgur.com/009Z3.png)
Выходное изображение ![enter image description here](https://i.stack.imgur.com/KaJqn.png)
Со следующим кодом:
import cv2
import numpy as np
first = cv2.imread(r"path.... \first.png")
second = cv2.imread(r"path.... \second.png")
h1, w1, c1 = first.shape
h2, w2, c2 = second.shape
h, w= h1+h2, max(w1, w2)
out_image = np.zeros((h,w,c1))
out_image[:h1,:w1, ] = first
out_image[h1:h1+h2,:w2, ] = second
cv2.imwrite(r"path ......out.png", out_image)