テンプレートマッチングは、ある画像の最も一致する(同様の)部分を別の画像に見つけるための手法です。
関数: imgproc.matchtemplate(MAT画像、マットテンプル、マット結果、intメソッド)
パラメーター説明:
画像:ソース画像
テンプル:テンプレート画像
結果:結果を比較します
方法:アルゴリズムの一致
一致するアルゴリズム:
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 auto-fenated method 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); //正規化された正方形の分散一致方法// 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); // //正方形の分散マッチング方法:この方法では、正方形の分散を使用して一致させます。最高の一致値は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);マッチロケーション= 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をもっとサポートすることを願っています。