【问题标题】:Perspective transform given point (x,y) in quadrilateral plane to Rectangle plane's point (x', y')?将四边形平面中的给定点(x,y)透视变换为矩形平面的点(x',y')?
【发布时间】:2014-10-27 14:20:36
【问题描述】:

我正在尝试将四边形转换为矩形平面并且需要提取 1 个特定点(在四边形平面中)的坐标,相对于矩形平面..

我在我的 .NET 项目中使用 EmguCV 进行图像处理

我试过的是:

1) 计算四边形和矩形平面之间的单应矩阵(从左上角顺时针指定两个平面的点)

2) 将上面的 Homography 矩阵乘以 3 x 1 矩阵 [x,y,1] 得到最终坐标。

但是,结果坐标 (x', y') 似乎与给定点 (x,y) 不一致。

【问题讨论】:

  • 坐标去均质化了吗?乘法后你有 (x',y',z') 但你需要 (x',y',1) 所以计算 p' = (x'/z', y'/z')。如果你这样做了但仍然得到错误的结果,请尝试绘制整个矩形并显示结果。
  • @Micka,非常感谢! “去同质化”是要走的路。它解决了我的问题。奇怪的是我忘记了基本的要求。即 p' = (x'/z', y'/z') 再次感谢!
  • 如果您愿意,您可以自己发布一个答案(可能是代码)并接受它以帮助遇到相同问题的其他人(并查看此问题的答案)。

标签: image opencv image-processing emgucv perspective


【解决方案1】:

正如Micka 建议的那样,在得到结果矩阵 (3x1) 后,解决这个问题所需要做的就是:p' = (x'/z', y'/z')

步骤如下:

  1. 计算四边形和矩形平面之间的单应矩阵
  2. 将此单应矩阵相乘。用候选点 [x,y,1]T 得到 [x',y',z']T
  3. 现在,在 [x',y',z']T 上去均质化,即 [(x'/z'), (y'/z'), 1]T

    因此,需要的矩形平面的最终坐标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多