La correspondance du modèle est une technique pour trouver la partie la plus correspondante (similaire) d'une image à une autre.
Fonction: imgproc.matchTemplate (Image de mat, Templ Mat, Résultat de MAT, méthode INT)
Description du paramètre:
Image: image source
Templ: image de modèle
Résultat: comparer les résultats
Méthode: algorithme de correspondance
Algorithme correspondant:
TM_SQDIFF Méthode de correspondance de différence carré: Cette méthode utilise la différence carrée pour correspondre; La meilleure valeur de correspondance est 0; Plus la correspondance est pire, plus la valeur de correspondance est grande.
Méthode de correspondance de corrélation TM_CCORN: Cette méthode utilise l'opération de multiplication; Plus la valeur est grande, meilleure est le degré de correspondance.
TM_CCOEFF CORRÉLATION COEFFICATEUR MÉTHODE DE MATTRAGE: 1 représente une correspondance parfaite; -1 représente le pire match.
TM_SQDIFF_NORMED Méthode de correspondance de différence carrée normalisée.
TM_CCORR_NORMED Méthode de correspondance de corrélation normalisée.
TM_CCOEFF_NORMED Méthode de correspondance de coefficient de corrélation normalisée.
Exemple de code:
public static void main (String [] args) {// TODO Méthode générée automatique Stub 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_ormed); // Méthode de correspondance de variance carrée normalisée // imgproc.matchTemplate (g_src, g_tem, g_result, // imgpro.tm_ccoeff_normed); // Méthode de correspondance du coefficient de corrélation normalisée // imgproc.matchTemplate (g_src, g_tem, g_result, imgproc.tm_ccoeff); // // // // Méthode de correspondance du coefficient de corrélation: 1 représente une correspondance parfaite; -1 représente le pire match. // imgproc.matchTemplate (g_src, g_tem, g_result, imgproc.tm_ccorr); // // méthode de correspondance associée // imgproc.matchTemplate (g_src, g_tem, g_result, imgpro.tm_sqdiff); // // Méthode de correspondance de variance carrée: Cette méthode utilise la variance carrée pour correspondre; La meilleure valeur de correspondance est 0; Plus la correspondance est pire, plus la valeur de correspondance est grande. // imgproc.matchTemplate (g_src, g_tem, g_result, imgproc.tm_ccorr_ormed); // // Méthode de correspondance de corrélation normalisée Core.Normalize (g_result, g_result, 0, 1, core.norm_minmax, -1, new Mat ()); Point Matchlocation = new Point (); MinMaxLocResult Mmmlr = Core.MinMaxLoc (G_RESULT); MatchLocation = mmmlr.maxloc; // Il faut utiliser le maxloc ici dépend de l'algorithme de correspondance utilisé imgproc.rectangle (g_src, matchLocation, new Point (matchLocation.x + g_tem.cols (), matchLocation.y + g_tem.Rows ()), new Scalar (0, 0, 0)); Imgcodecs.imwrite ("f: //match.jpg", g_src); } Image source:
Image du modèle:
Résultat de la correspondance:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.