1

我正在以下列方式对具有投影失真的图像进行度量校正:

  • 从原始图像中,我找到了两组平行线并找到了它们的交点(无穷远处的消失点)。
  • 我正在选择一个圆上的五个非共线点来拟合圆锥曲线,然后我正在使用上述点检查该圆锥曲线在无穷远处与直线相交的位置。
  • 我使用这些点来找到扭曲的双退化圆锥曲线。

理论上,由于扭曲的二次曲线由 C*'=HC*H' 确定(C* 是对偶退化二次曲线,' 是转置,H 是我的单应性),我应该能够运行 SVD 来确定 H。未失真,C * 是一个 3x3 单位矩阵,最后一个元素位于对角线零上。但是,如果我运行 SVD,我不会在对角矩阵中得到。对于某些矩阵,我可以通过使用 Cholesky 因式分解来避免这种情况(哪些因素是 C*'=HH' 的因素,至少对于这个来说,这基本上是可以的),但这需要一个正定矩阵。有没有办法将 SVD 中返回的对角矩阵内的比例平均分配到 U 和 V' 矩阵中,同时保持它们相同?(例如 U = V)。

我为此使用 MATLAB。我确定我错过了一些明显的东西......

4

1 回答 1

2

结果矩阵缺乏正定性是由于噪声,因为使用的图像具有太多的径向失真渲染,即使在这种方法中选择圆上的许多点也相当无用。

SVD 方法中遗漏的一点是通过左右乘以对角矩阵的平方根(将最后一个对角元素设置为 1,因为奇异值应该为零但零分量)从对角分量中删除比例不会产生正确的结果)。

于 2012-12-31T03:12:41.527 回答