【问题标题】:OpenCV: what does cv2.warpPerspective do? / trying to understand homographiesOpenCV:cv2.warpPerspective 做什么? / 试图理解单应性
【发布时间】: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


【解决方案1】:

这是一个老问题,但我刚刚在页面上的相关中看到它与我最近回答的一个问题有关,并想我会在这里插话,以防其他人偶然发现这个问题。请参阅 here 来回答为什么您的点不正确的直接问题,并参阅 here 以获得非常详细的答案,讨论点是如何转换的以及如何自己映射它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 2020-01-25
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多