在我的項目中,我需要比較圖像。一個圖像顯示了一個渲染模型,另一個圖像是一張照片,其中顯示了模型中表示的真實對象。我真正想要的:如何比較兩個邊緣圖像(在OpenCV中)?
- 該算法必須比較兩個圖像並返回一個數字,描述相似性。比方說,數字越低,圖像就越好。
- 這兩個圖像都表示爲二進制圖像,只包含實際渲染圖像/照片的輪廓/邊緣。
- 該照片中的對象比渲染圖像多得多。所以我只想檢查渲染對象的視點是否與照片中真實對象的視點幾乎相同。 (例如:一輛汽車的模型與一輛真正的汽車相近,我從一個特殊的位置和方向拍攝了一輛真實的汽車的照片,現在我想檢查一下,如果我的虛擬相機的位置和方向看着汽車幾乎相同,比我的現實生活相機的位置和方向)。解決方案只是比較渲染圖像的白色像素與照片的像素(作爲邊緣圖像)。其他像素不感興趣。
- 圖像比較的返回值應該越小,我的定位和虛擬相機的位置就越適合真實相機的方向和位置。
我試圖計算兩個圖像的歐幾里得距離,但結果是唯一的,當像素完全適合對方。現在我正在尋找替代品。
到目前爲止,我考慮使用歸一化的互相關,但我真的不知道它是否適合我的任務。
問題是,如果規範化的互相關值得一試,或者有更好的方法來解決我的問題!
該算法應該儘可能快,因爲我比較了很多圖像。
非常感謝
感謝您的建議。我有點困惑,因爲規範化的交叉核心和Haussdorff距離似乎有利於在大局中找到一個小模式。
問題是:這兩種算法是否也適用於比較2張相同大小的圖片?
這是一個需要比較的2個圖像的例子。目前,我正在比較大約120張圖片 - 第二張圖片。
太糟糕了,我無法將圖像作爲新用戶發佈。所以這裏是直接鏈接: http://s14.directupload.net/file/d/2674/t8qzbq9i_png.htm
你能後的兩個圖像? – Maurits
已鏈接到示例。 – user987979
+1有趣的問題。你能在邊緣檢測它們之前發佈圖像嗎?這將有助於爲您的問題添加一些背景。 – misha