求解Homography Matrix的DLT方法

对于两张图片
求解Homography Matrix的DLT方法

求解Homography Matrix的DLT方法
进行特征点匹配
求解Homography Matrix的DLT方法
去除错误的匹配
求解Homography Matrix的DLT方法
对于现在image1与image2匹配的点集 { x 1 i } , { x 2 i } \{x_{1_i}\},\{x_{2_i}\} {x1i​​},{x2i​​}
我们希望找到一个矩阵H,使得任意匹配的两个点 x 1 i , x 2 i , x_{1_i},x_{2_i}, x1i​​,x2i​​, H x 1 = x 2 . Hx_1=x_2. Hx1​=x2​. H = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) H=\begin{pmatrix}h_1&h_2&h_3\\h_4&h_5&h_6\\h_7&h_8&h_9\end{pmatrix} H=⎝⎛​h1​h4​h7​​h2​h5​h8​​h3​h6​h9​​⎠⎞​ ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) ( x 1 y 1 1 ) = ( x 2 y 2 1 ) ⇔ \begin{pmatrix}h_1&h_2&h_3\\h_4&h_5&h_6\\h_7&h_8&h_9\end{pmatrix}\begin{pmatrix}x_1\\y_1\\1\end{pmatrix}=\begin{pmatrix}x_2\\y_2\\1\end{pmatrix}\Leftrightarrow ⎝⎛​h1​h4​h7​​h2​h5​h8​​h3​h6​h9​​⎠⎞​⎝⎛​x1​y1​1​⎠⎞​=⎝⎛​x2​y2​1​⎠⎞​⇔ ( 0 0 0 x 1 y 1 1 − x 1 y 2 − y 1 y 2 − y 2 x 1 y 1 1 0 0 0 − x 1 x 2 − y 1 x 2 − x 2 ) ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) = ( 0 0 0 0 0 0 0 0 0 ) \begin{pmatrix}0&0&0&x_1&y_1&1&-x_1y_2&-y_1y_2&-y_2\\x_1&y_1&1&0&0&0&-x_1x_2&-y_1x_2&-x_2\end{pmatrix}\begin{pmatrix}h_1\\h_2\\h_3\\h_4\\h_5\\h_6\\h_7\\h_8\\h_9\end{pmatrix}=\begin{pmatrix}0\\0\\0\\0\\0\\0\\0\\0\\0\end{pmatrix} (0x1​​0y1​​01​x1​0​y1​0​10​−x1​y2​−x1​x2​​−y1​y2​−y1​x2​​−y2​−x2​​)⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛​h1​h2​h3​h4​h5​h6​h7​h8​h9​​⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞​=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛​000000000​⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞​
对于n组匹配的点,我们找到了2n个方程,通过SVD求解,这就是DLT方法. DLT方法一般只用于少量的匹配点.
求得的H矩阵效果如下.
求解Homography Matrix的DLT方法
Normalized DLT在DLT的基础上,将匹配的点先通过平移使得横纵坐标的均值均为0,然后通过缩放使得与原点的 平 均 距 离 为 2 平均距离为\sqrt2 平均距离为2 ​ 记 变 换 矩 阵 分 别 为 T 1 , T 2 记变换矩阵分别为T_1,T_2 记变换矩阵分别为T1​,T2​
求得的H矩阵效果如下.
求解Homography Matrix的DLT方法

上一篇:java-图像的单应转换


下一篇:STL——迭代器的概念