【问题标题】:Homography and projective transformation单应性和射影变换
【发布时间】:2015-05-11 18:34:57
【问题描述】:

我正在尝试编写一个可以进行投影变换的代码,但有超过 4 个关键点。我找到了这个有用的指南,但它使用了 4 个参考点 https://math.stackexchange.com/questions/296794/finding-the-transform-matrix-from-4-projected-points-with-javascript

我知道 matlab 使用了一个函数 tcp2form 来处理它,但到目前为止我还没有找到方法。

任何人都可以给我一些指导,如何做到这一点?我可以使用(最小二乘法)求解方程,但我被卡住了,因为我有一个大于 3*3 的矩阵并且我不能乘以齐次坐标。

谢谢

【问题讨论】:

  • 欢迎来到 StackOverflow。恐怕要求指导的问题有点过于宽泛了。如果您包含一个带有代码的具体示例来展示您已经走了多远(即mcve,然后就您遇到的部分提出问题。How-To-Ask 可能是一个有用的读物​​,您就有更高的机会获得有用的答案也是。

标签: image-processing homography projection-matrix


【解决方案1】:

如果您有四个以上的控制点,则您有一个overdetermined system of equations。有两种可能的情况。您的观点都与相同的转换兼容。在这种情况下,可以使用任意四个点,其余的点将与变换完全匹配。至少在理论上。为了数值稳定性,您可能希望选择您的点,使它们远离共线。

或者您的观点与单个射影变换并不完全兼容。在这种情况下,您所能期望的只是一个近似值。如果您想要最好的近似值,则必须更具体地了解“最佳”的含义,即某种误差度量。在投影设置中测量事物本身就很棘手,因为通常涉及很多任意决定。

您可以尝试修复一个矩阵条目(例如右下角的 1 到 1),然后将剩余 8 个坐标的条件写为线性方程组,并执行least squares approximation。但是矩阵代表的选择(即在这里固定一个条目)会影响最小二乘误差度量,而它对几何意义没有影响,所以这是一个非常随意的选择。如果所需矩阵的右下方条目恰好为零,则由于溢出,您的计算将遇到数值问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 2011-11-30
    相关资源
    最近更新 更多