使用匹配模板解释结果



我正在尝试使用以下 matchTemplate 代码匹配 2 张图像。

                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 个填充圆时,它给出了预期的 .99

但是在比较填充圆和几乎相同大小的填充正方形时,它给出了 1.0。

我做错了什么?图像是黑白的。

完美匹配应显示为 .99999999

如果你得到的是 1.0,你要么在之后规范化值(看起来不像你)

或者其他事情正在发生。

您可能需要确保大小正确(搜索模板、结果矩阵等)

真的认为你不应该得到 1.0 的回报,因为我自己已经用完美的匹配测试了这个,我的结果是 .9999.....

最新更新