我試圖使用以下matchTemplate代碼匹配2個圖像。使用matchTemplate解釋結果
int match_method = Imgproc.TM_CCOEFF_NORMED;
int result_colsAB = matB.cols() - matA.cols() + 1;
int result_rowsAB = matB.rows() - matA.rows() + 1;
Mat resultAB = new Mat(result_rowsAB, result_colsAB, CvType.CV_8UC1);
Imgproc.matchTemplate(matA, matB, resultAB,match_method);
//Core.normalize(resultAB, resultAB, 0.0, 1.0, Core.NORM_MINMAX, -1, new Mat());
MinMaxLocResult mmr = Core.minMaxLoc(resultAB);
System.out.println(mmr.maxVal);
比較2米填充的圓圈時如預期
但對比實心圓和幾乎相同的尺寸的填充的正方形時,它提供一個1.0它使預計0.99。
我在做什麼錯?圖像是黑色和白色。
你在期待什麼? – 2014-11-21 06:52:01
它不應該給1.0 ...至少少於.99的東西(這是比較完全相同的圖像時的結果) – 2014-11-23 17:04:12
我懷疑這句話的正確性。 AFAIK,'matchTemplate'做了一個相關性,其結果是在區域「最匹配」時具有最大值。另一個地區很可能會出現更好的匹配。 – 2014-11-23 17:08:50