Я попытался вставить изображение png на другое изображение (jpg), используя гомографию в openCV, используя в этом примере. И формат jpg работает с этим, но когда я пытаюсь сделать с png, белая область показывает,И я также пытался использовать -1 и cv2.IMREAD_UNCHANGED
в imread, который не меняет изображение, но код не запускается после этого.Пожалуйста, предложите мне способ вставить 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
Было бы здорово, если бы вы могли дать мне ответ.