我对描述here的DLT算法和描述here的单应性估计之间的差异感到有些困惑。在这两种技术中,我们试图通过使用至少4个点对应来求解3×3矩阵的条目。在这两种方法中,我们建立了一个系统,我们有一个“测量”矩阵,我们使用SVD来求解构成H的元素的向量。我想知道为什么有两种技术似乎做同样的事情,并且为什么一个人可能会被用在另一个人身上。
答案 0 :(得分:1)
您有左右图像对应{p_i} <-> {p'_i}
,其中p_i = (x_i, y_i)
等。
将它们规范化为单位平方意味着计算两个班次m=(mx, my)
,m'=(mx', my')
和两个缩放s=(sx,sy)
,s'=(sx',sy')
,使q_i = (p_i - m) / s
和{{1}并且q_i' = (p_i' - m') / s'
和{q_i}
转换后的图像点都以{q'_i}
为中心,大致包含在单位边长的正方形内。一个小数学表明,m项的一个很好的选择是每组图像点中x,y坐标的平均值,对于s项,你使用标准偏差(或标准偏差的两倍)乘以1 / sqrt( 2)。
您可以用矩阵形式表达此规范化转换:(0,0)
,
其中q = T p
,同样T = [[1/sx, 0, -mx/sx], [0, 1/sy, -my/sy], [0, 0, 1]]
。
然后,您计算q' = T' p'
和K
点之间的单应性{q_i}
:{q'_i}
。
最后,您将q_i' = K q_i
非规范化为原始(非标准化)坐标,因此:K
和H = inv(T') K T
是将H
映射到{{1}的所需单应性}}