當使用OpenCV的findHomography
函數來估計兩組點之間的單應性時,即使使用RANSAC或LMEDS,由於輸入點內的離羣值,您有時會得到不良的單應性。如何判斷單應性矩陣是否可以接受?
// opencv java example:
Mat H = Calib3d.findHomography(src_points, dst_points, Calib3d.RANSAC, 10);
如何判斷生成的3x3單應性矩陣是否可以接受?
我在這裏尋找答案在這裏在Stackoverflow和谷歌,無法找到它。
我發現這篇文章,但它是一個有點神祕對我說:
"The geometric error for homographies"
查看問題http://stackoverflow.com/questions/10972438/detecting-garbage-homographies-from-findhomography-in-opencv/10981249#10981249 –
如果您的相機移動受限,您可以嘗試分解您的單應性和測試縮放比例,旋轉和/或平移參數以獲得最大值。其他方法:如果您知道(或採取約束)圖像的大部分應該重疊,則可以在變形之後計算重疊,並確定它是否顯然是錯誤的單應性。其他方法:如果您使用RANSAC,您可以根據inlier數量(和/或inlier/total的比率)決定單應是否應該被拒絕) – Micka
@Micka感謝您的幫助,我已經在使用RANSAC,相機運動是不受限制,我正在尋找方法來放棄單應性(主要是數學),然後再進行更重的計算,如應用單應性和檢查重疊。 –