在 openCV 中使用单应性将 PNG 粘贴到图像上

Pasting a PNG on a image using homography in openCV

我试图通过使用 this example. 在 openCV 中使用单应性将 png 图像粘贴到另一个图像 (jpg) 上并且 jpg 格式适用于此但是当我尝试使用 png 时,白色区域显示。我还尝试在 imread 中使用添加 -1 和 cv2.IMREAD_UNCHANGED,这不会更改图像,但之后代码不会 运行。请建议我一种粘贴 png 的方法。会有很大的帮助。代码是这样的,接下来是图片。

import cv2
import numpy as np
from utils import mouse_handler
from utils import get_four_points
import sys


if __name__ == '__main__' :

    # Read source image.
    im_src = cv2.imread('first-image.jpg');
    size = im_src.shape

    # Create a vector of source points.
    pts_src = np.array(
                       [
                        [0,0],
                        [size[1] - 1, 0],
                        [size[1] - 1, size[0] -1],
                        [0, size[0] - 1 ]
                        ],dtype=float
                       );


    # Read destination image
    im_dst = cv2.imread('times-square.jpg');

    # Get four corners of the billboard
    print 'Click on four corners of a billboard and then press ENTER'
    pts_dst = get_four_points(im_dst)

    # Calculate Homography between source and destination points
    h, status = cv2.findHomography(pts_src, pts_dst);

    # Warp source image
    im_temp = cv2.warpPerspective(im_src, h, (im_dst.shape[1],im_dst.shape[0]))

    # Black out polygonal area in destination image.
    cv2.fillConvexPoly(im_dst, pts_dst.astype(int), 0, 16);

    # Add warped source image to destination image.
    im_dst = im_dst + im_temp;

    # Display image.
    cv2.imshow("Image", im_dst);
    cv2.waitKey(0);

图像: https://github.com/spmallick/learnopencv/blob/master/Homography/first-image.jpg https://github.com/spmallick/learnopencv/blob/master/Homography/times-square.jpg

UTILS CLASS https://github.com/spmallick/learnopencv/blob/master/Homography/utils.py

如果你能给我一个答案就太好了。

问题已在 this link 中解决。 PNG 格式有一个名为 'alpha' 的额外通道用于透明度。