2014-04-18 39 views
2

我必須比較OpenCV中的兩個圖像,它們都是黑色和白色,並且有白色邊緣,我想通過比較這兩個圖像來得到某種百分比結果。我該怎麼辦?比較OpenCV中兩個圖像的特徵vC++

enter image description here

第一圖象和

enter image description here

第二圖像

可有人就如何執行此操作的建議?

+1

提取匹配方面的問題是非常主觀的。你對比較結果的定義是什麼?例如,如何量化圖像彼此相似度爲30%?您是否要計算在相同位置完全相同的像素數量,或者想要使用其他一些度量方法進行比較? – Alexey

+0

你能提供一個你的輸入和輸出的例子嗎? – Hadi

+0

清楚地瞭解您想要精確計算的內容可能會有所幫助。 – Alexey

回答

0

對於簡單的黑白圖像,你可以嘗試compare

cv::Mat img1 = ... 
cv::Mat img2 = ... 
cv::Mat result = ... 

cv::compare(img1 , img2 , result , cv::CMP_EQ); 
int percentage = countNonZero(result); 

但是,對於更高級的比較,也有不同的方法,如用matchTemplate

+0

我試過cv :: compare,但結果不令人滿意。 MatchTemplate更好。特別是對於大圖像。謝謝 – elroyalva