我在这里有 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)
结果:
如您所见,由于 warpPerspective 函数中的 dsize=(800,800) 参数,我无法获得图像 1 的完整视图。如果我调整 dsize,正方形将无法正确映射。有没有办法调整输出图像的大小,以便我可以获得图像 1 的全图?