La coincidencia de la plantilla es una técnica para encontrar la parte más coincidente (similar) de una imagen con otra.
Función: imgproc.matchtemplate (imagen MAT, MAT TEMPL, resultado MAT, método int)
Descripción del parámetro:
Imagen: imagen de origen
Templ: imagen de plantilla
Resultado: compare los resultados
Método: algoritmo coincidente
Algoritmo coincidente:
TM_SQDIFF Método de coincidencia de diferencia al cuadrado: este método usa la diferencia cuadrada para coincidir; El mejor valor de coincidencia es 0; Cuanto peor sea el partido, mayor es el valor del partido.
Método de coincidencia de correlación TM_CCORR: este método utiliza operación de multiplicación; Cuanto mayor sea el valor, mejor será el grado de coincidencia.
Método de coeficiente de correlación TM_CCOEFF: 1 representa una coincidencia perfecta; -1 representa el peor partido.
TM_SQDIFF_NORMED Método de coincidencia de diferencia cuadrada normalizada.
TM_CCORR_NORMED Método de coincidencia de correlación normalizada.
TM_CCOEFF_NORMED Método de coeficiente de correlación normalizado.
Código de muestra:
public static void main (string [] args) {// TODO Método Generado automático stub.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); // Método de coincidencia de varianza cuadrada normalizada // imgproc.matchtemplate (g_src, g_tem, g_result, // imgproc.tm_ccoeff_normed); // Método de coeficiente de coeficiente de correlación normalizado // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccoeff); // // // // Método de coeficiente de coeficiente de correlación: 1 representa una coincidencia perfecta; -1 representa el peor partido. // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccorr); // // método de coincidencia relacionado // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_sqdiff); // // Método de coincidencia de varianza cuadrada: este método utiliza la varianza cuadrada para que coincida; El mejor valor de coincidencia es 0; Cuanto peor sea el partido, mayor es el valor del partido. // imgproc.matchtemplate (g_src, g_tem, g_result, imgproc.tm_ccorr_normed); // // Método de coincidencia de correlación normalizado Core.normalize (g_result, g_result, 0, 1, core.norm_minmax, -1, nuevo mat ()); Point MatchLocation = new Point (); Minmaxlocresult mmmlr = core.minmaxloc (g_result); MatchLocation = mmmlr.maxloc; // si usar maxloc aquí depende del algoritmo coincidente utilizado imgproc.rectangle (g_src, matchLocation, new Point (matchLocation.x + g_tem.cols (), matchLocation.y + g_tem.rows ()), nuevo escalar (0, 0, 0, 0, 0, 0)); Imgcodecs.imwrite ("f: //match.jpg", g_src); } Imagen de origen:
Imagen de plantilla:
Resultado del partido:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.