2012-03-22 59 views
4

我有這兩個圖像。什麼是CvMatchShapes返回?

small size

而且...... larger size

我讓他們到graysclae圖像,然後通過兩個圖像cvMatchImages像這樣

Double someValue = cvMatchShapes(grayImage, grayImage2, CV_CONTOURS_MATCH_I2, 0); 
    System.out.println(someValue); 

這是由印刷了系統輸出的值1.465496453484283。這個值代表什麼?我如何使用它來匹配其他圖像,以及我怎樣才能拒絕那些沒有的圖像?

回答

2

該值表示兩個物體有多麼不同,它表示兩個形狀之間的胡矩特徵距離。它越小,兩個物體越相似。 閾值可用於執行匹配,如下所示:如果輸出值小於閾值,則兩個對象匹配,或兩個對象不同。 至於如何選擇一個閾值,這取決於。 你可以使用一些實例來訓練閾值。 我強烈建議您將圖像中的對象標準化爲相似的尺寸。這樣會提高您的準確度

+0

因此,返回的值是翻譯的一個因素嗎? – prometheuspk 2012-03-23 07:16:43

+0

如果這些圖像大小相同,將返回什麼值? 0? – prometheuspk 2012-03-23 07:40:05

+0

可以這麼說,但它是兩個物體的特徵之間的距離,距離可能是歐幾里德距離或類似的東西 – zhijie 2012-03-23 07:42:17