【发布时间】:2017-05-16 20:57:05
【问题描述】:
我已经能够使用 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 但我真的很想知道为什么这不起作用!
【问题讨论】:
-
查看THIS POST了解更多信息及其相关链接
-
@JeruLuke 我已经看到了,我可以正确使用 cv2.warpperspective 没问题。我的问题是,为什么我不能直接将矩阵乘以点?
-
要做到这一点,您可以使用 'cv2.findHomography()' 函数。从 source 图像中获取要映射到 destination 图像中的点的点。
-
@JeruLuke 感谢您的回复:) 但我已经有了单应矩阵。我的问题是将单应矩阵应用于点。
-
使用单应矩阵的应用是将图像'A'相对于图像'B'对齐。为此,他们对这些图像“A”和“B”中的每一个取 4 个点。基线是:单应矩阵用于对齐。
标签: opencv homography