我正在使用模板匹配创建一个简单的openCV应用程序,我需要比较在大图像中查找小图像并返回结果为true(如果匹配找到)或false(未找到匹配项).
- Imgproc.matchTemplate(largeImage,smallImage,result,matchMethod);
- Core.normalize(result,1,Core.NORM_MINMAX,-1,new Mat());
- MinMaxLocResult mmr = Core.minMaxLoc(result);
- double minMaxValue = 1;
- if (matchMethod== Imgproc.TM_SQDIFF || matchMethod== Imgproc.TM_SQDIFF_NORMED)
- {
- minMaxValue = mmr.minVal;
- useMinThreshold = true;
- }
- else
- {
- minMaxValue = mmr.maxVal;
- }
现在的问题是使用这个minMaxValue做出决定(真/假).我知道上面两种方法TM_SQDIFF和TM_SQDIFF_NORMED返回低值,而其他方法返回高值,所以我可以有2个不同的阈值并比较一个阈值(取决于模板方法类型).
因此,如果有人可以解释MinMaxLocResult返回的minVal和maxVal范围是多么好.
它是0到1范围?
如果是,对于Max类型模板方法,值1是否完美匹配?