我正在尝试了解warpPerspective和getPerspectiveTransform的输出。所以我拍了一张图片:
并尝试将完整图像(使用边界坐标)转换为
坐标,如下面的pts2
所述。这就是我所做的。
import cv2
import numpy as np
image = "b.jpg"
img = cv2.imread(image)
pts1 = np.float32([
[0,0],
[0, img.shape[1]],
[img.shape[0],img.shape[1]],
[img.shape[0],0]
])
pts2 = np.float32([
[100,100],
[100,300],
[300,300],
[300,5]
])
M = cv2.getPerspectiveTransform(pts1,pts2)
dst = cv2.warpPerspective(img,M,(400,400))
cv2.imwrite("test.png", dst)
以上代码的输出如下:
此输出在目的地坐标方面意味着什么:
pts2 = np.float32([
[100,100],
[100,300],
[300,300],
[300,5]
])
为什么输出显示为现在显示的样子?当我看到pts2
并与pts1
(它们是简单的边界坐标)进行比较时,我无法在脑海中映射它。