我已经能够使用cv2.warpPerspective函数使用单应性矩阵来变换/扭曲图像。但是,当我不使用openCV并想使用更底层的东西时-当前,我正在使用OpenGL绘制一些图形,并且想将已知的单应性矩阵应用于特定的顶点,因此无法将单应性矩阵应用于这样:

对于点(x,y),我将其设为(x,y,1)。然后用单应性矩阵H乘以H *(x,y,1)。 H是3x3矩阵,(x,y,1)是3x1,因此我获得了一个新的(x',y',z')3x1。但这似乎不正确吗?

我已经可以使用这里的方法https://math.stackexchange.com/questions/296794/finding-the-transform-matrix-from-4-projected-points-with-javascript获得正确的转换新点,但是我真的很想知道为什么这不起作用!

最佳答案

这是一个古老的问题,但我只是在页面上的“相关”中看到了我最近回答的一个问题,并认为我会在这里鸣叫,以防其他人偶然发现此问题。请参阅here来回答为什么您的点不正确的直接问题,请参阅here来获得非常详细的答案,讨论确切地变换点以及如何自己绘制点。

关于opencv - OpenCV:cv2.warpPerspective做什么?/试图理解单应性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41432121/

10-11 16:16