У меня есть 2 тестовых изображения. Я задаюсь вопросом, как отобразить квадрат в первом изображении на четырехугольник во втором изображении без обрезки изображения.
Изображение 1:
Изображение 2:
Вот мой текущий код, используя функцию openCV warpPerspective.
import cv2
import numpy as np
img1_square_corners = np.float32([[253,211], [563,211], [563,519],[253,519]])
img2_quad_corners = np.float32([[234,197], [520,169], [715,483], [81,472]])
h, mask = cv2.findHomography(img1_square_corners, img2_quad_corners)
im = cv2.imread("image1.png")
out = cv2.warpPerspective(im, h, (800,800))
cv2.imwrite("result.png", out)
Результат:
Как вы можете видеть из-за параметра dsize = (800,800) в функции warpPerspective, я не могу получить полный вид изображения 1. Если я отрегулирую dsize, квадрат не будет правильно отображаться. Есть ли способ изменить размер выходного изображения, чтобы я мог получить полную картину изображения 1?