Сопоставление шаблонов - это метод поиска наиболее подходящей (аналогичной) части одного изображения с другим.
Функция: imgproc.matchtemplate (Mat Image, Mat Templ, Mat Result, Int Method)
Описание параметра:
Изображение: исходное изображение
Templ: шаблон изображение
Результат: сравните результаты
Метод: соответствующий алгоритм
Алгоритм сопоставления:
TM_SQDIFF Квадратный метод сопоставления различий: этот метод использует разницу в квадрате в соответствии с; Лучшее значение совпадения - 0; Чем хуже матч, тем больше значение совпадения.
Метод сопоставления корреляции TM_CCORR: В этом методе используется операция умножения; Чем больше значение, тем лучше сопоставленная степень.
TM_CCOEFF Коэффициент коэффициента коэффициента Соответствия: 1 представляет идеальное соответствие; -1 представляет собой худший матч.
TM_SQDIFF_NORMED Нормализованный метод соответствия разницы в квадратах.
TM_CCORR_NORMED Нормализованный метод соответствия корреляции.
TM_CCOEFF_NORMED Нормализованный коэффициент корреляции.
Пример кода:
public static void main (string [] args) {// todo автоматическое сгенерированное метод System.loadlibrary (core.native_library_name); Mat g_tem = imgcodecs.imread ("f: //mould.jpg"); Mat g_src = imgcodecs.imread ("f: //source.jpg"); int result_rows = g_src.rows () - g_tem.rows () + 1; int result_cols = g_src.cols () - g_tem.cols () + 1; Mat g_result = new Mat (result_rows, result_cols, cvtype.cv_32fc1); Imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccorr_normed); // Нормализованный метод соответствия дисперсии // imgproc.matchtemplate (g_src, g_tem, g_result, // imgproc.tm_ccoeff_normed); // Нормализованный метод соответствия коэффициента корреляции // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccoeff); // // // // Метод составления коэффициента корреляции: 1 представляет идеальное соответствие; -1 представляет собой худший матч. // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccorr); // // Связанный метод сопоставления // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_sqdiff); // // Метод сопоставления дисперсии квадратной дисперсии: этот метод использует дисперсию Square для соответствия; Лучшее значение совпадения - 0; Чем хуже матч, тем больше значение совпадения. // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccorr_normed); // // Нормализованное метод соответствия корреляции core.normalize (g_result, g_result, 0, 1, core.norm_minmax, -1, new Mat ()); Точечная совпадение = new Point (); Minmaxlocresult mmmlr = core.minmaxloc (g_result); MatchLocation = mmmlr.maxloc; // Будь то использовать maxloc здесь, зависит от алгоритма соответствующего использования imgproc.rectangle (g_src, matchlocation, new point (matchlocation.x + g_tem.cols (), matchlocation.y + g_tem.rows ()), новый скаляр (0, 0, 0, 0)); Imgcodecs.imwrite ("f: //match.jpg", g_src); } Изображение источника:
Изображение шаблона:
Матч -результат:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.