驗證對極約束

驗證對極約束x_{2}^{T} * E * x_{1} = 0

1. 將圖1中匹配好的特徵點像素座標轉化爲歸一化座標 : P_{c} = K^{-1} * P_{uv}

輸入:keypoints_1[ m.queryIdx ].pt 爲像素座標, K爲相機內參矩陣;

得到:y1 = (x/z, y/z, 1) 相機歸一化座標。

代碼如下:

Point2d pt1 = pixel2cam ( keypoints_1[ m.queryIdx ].pt, K );

Mat y1 = ( Mat_<double> ( 3,1 ) << pt1.x, pt1.y, 1 );

2.  將圖2中匹配好的特徵點像素座標轉化爲歸一化座標 : P_{c} = K^{-1} * P_{uv}

輸入:keypoints_2[ m.trainIdx ].pt 爲像素座標, K爲相機內參矩陣;

得到:y2 = (x/z, y/z, 1) 相機歸一化座標。

代碼如下:

Point2d pt2 = pixel2cam ( keypoints_2[ m.trainIdx ].pt, K );
Mat y2 = ( Mat_<double> ( 3,1 ) << pt2.x, pt2.y, 1 );

3. 通過公式 x_{2}^{T} * E * x_{1} = 0 驗證對極約束,其中x_{1}, x_{2} 爲相機歸一化座標,分別對應代碼中y1, y2

Mat d = y2.t() * t_x * R * y1;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章