Я создаю простое приложение openCV, используя сопоставление шаблонов, где мне нужно сравнить, найти маленькое изображение в большом изображении и вернуть результат как истинный (если совпадение найдено) или ложный (совпадения не найдены).
Imgproc.matchTemplate(largeImage, smallImage, result, matchMethod);
Core.normalize(result, result, 0, 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 разных пороговых значения и сравнивать одно из пороговых значений (в зависимости от типа метода шаблона).
Так что было бы здорово, если бы кто-нибудь мог объяснить, что такое диапазон minVal и maxVal, который возвращает MinMaxLocResult.
Это диапазон от 0 до 1?
Если да, то для метода шаблона типа Max значение 1 идеально подходит?