2012-01-22 47 views
10

在OpenCV功能findhomography() RANSAC信心參數發現兩個圖像的匹配點之間的單應變換。 (參見DefinitionOpenCV的:查找單應

爲了找到點RANSAC可使用的匹配子集。

這裏的漁獲:在其中使用RANSAC的OpenCV與其他功能(例如findfundamentalMat(見Definition))的RANSAC參數信心不能改變。只有重投影閾值可以作爲參數傳遞。

我看着在OpenCV的來源,以及findhomography()信心被硬編碼到0.995。

爲了我的目的,我需要增加這個。有沒有辦法做到這一點,而不改變OpenCV源本身的價值?

有爲什麼這應該是硬編碼的理由嗎?

PS:我添加下一個顛覆的改變request under Ticket 1557

回答

5

進行硬編碼的原因是,對於大多數用戶來說,這是一個非常不錯的選擇。

也許你是第一個感受到更多的東西需要。但這就是爲什麼OpenCV是開放的 - 取得代碼,修改它,製作補丁並將其提交給OpenCV開發團隊 - 無論您喜歡什麼。

而且,你確定這是你需要什麼?通常情況下,更嚴格的reproj門檻將成爲訣竅。如果你有問題,他們可能在別處 - 一些選擇不當點,點上一個匹配過大擬合誤差等

+1

你是對的:我可以自己改變它並參與開發。事實上,這是我在本地顛覆中所做的,並且運行良好。 – user834985

5

那麼,你是不是需要改變harcoded變量或函數在OpenCV的第一。實際上,我們正在改變很多OpenCV的功能,以使它們更快,更高效地用於手機。 如果你想改變RANSAC,只需要創建一個類的副本用不同的名稱

class CvModelEstimator2 
{ 

} 
在你的代碼

,並在需要親自對其進行修改。您還可以更改RANSAC的最大迭代次數,缺省值非常高,並且使應用程序非常慢。