OpenCV-Python中点的warpPerspective反变换

2024-04-27 18:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的项目中,我在一个要裁剪的区域的大图像中获取点,我使用perspectiveTransformwarpPerspective方法对其进行转换,然后检索一个新图像,将其转换为矩形。在新图像中,我找到了特定的点(x,y),并希望将它们向后转换为原始图像,相对于其透视图。为此,我使用了相同的warpPerpective和相同的参数,但是使用了一个标志WARP_INVERSE_MAP。但是,它返回一个大数组的0。在

如何对一个点(在python中)进行反向转换而不是对图像进行转换?

这是我使用的代码:

p = (123, 234)
p_array = np.array([[p[0], p[1]]], dtype=np.float32)
matrix = cv2.getPerspectiveTransform(points, output_points)
transformed_points = cv2.warpPerspective(p_array, matrix, table_image_size, cv2.WARP_INVERSE_MAP)

其中:

从原始图像中裁剪的4个点

output_points-4个裁剪图像必须放入新图像中的点

table_image_size—图像的水平和垂直大小

这些参数都在正变换中,在这个逆变换中是相同的,唯一的区别是,在warpPerspective方法中,不是从I insertp_数组裁剪图像。在


Tags: 方法图像mapoutput参数nptable数组