首页 > 解决方案 > 使用 getPerspectiveTransform 获取变换矩阵,然后用它来将单个点变换为扭曲空间

问题描述

我有以下图像:

在此处输入图像描述

如您所见,那里有一个绿点,坐标为 (x1,y1)。接下来,我确定一些参考点和目标点,以便使用以下方法获得相应的透视变换矩阵:

matrix = cv2.getPerspectiveTransform(referencePoints, targetPoints)

我应该如何使用该矩阵将 (x1,y1) 点转换为具有新视角的新点 (x2,y2)。

在此处输入图像描述

作为另一个示例,假设您在原始图像中有两个点,它们之间的距离为 d1,但您想要这两个点之间的真实距离 d2。然后,您应该将两个点都转换到新空间中(从鸟瞰角度)并再次计算距离。

具体来说,变换矩阵为:

matrix = array([[ 3.51546299e+00,  1.70317103e+01,  3.42045887e+02],
                [-9.18633633e-01,  1.31323789e+01,  1.77154086e+03],
                [ 2.00130923e-06,  2.07269593e-03,  1.00000000e+00]])

我要改造的一点是:

A = [303.7355, 1101.029]

谢谢

标签: pythonopencvimage-processinglinear-algebramatrix-transform

解决方案


推荐阅读