コードは以下の通りであります:
書式#include <opencv2 / opencv.hpp> の#include <iostreamの> 書式#include <math.h>の 使用して 、名前空間STD; 使用して 名前空間CV; マットSRC、TEMP、DST; // トラックバーのパラメータ: int型 match_method = TM_SQDIFF; // match_method最初のマッチングへのポインタ int型 max_track = 5。 ; // 5つの方法がポインタmax_track のconst のchar * INPUT_T = " 入力画像" ; constの char型 * OUTPUT_T = " 結果画像を" ; のconst char型Match_t = * " テンプレート一致-DEMO " ; ボイド Match_Demo(INT、ボイド * ); int型のmain(int型 ARGC、チャー ** ARGVは){ // 画像が検出される SRC =関数imread(" :/10.jpg Lを" ;) @ テンプレート画像 TEMP =関数imread(" L:/11.jpg " ); IF(src.empty()|| temp.empty()){ のprintf(" N- \ ...画像をロードできませんでした" ); リターン - 1; } namedWindow(INPUT_T、CV_WINDOW_AUTOSIZE)。 namedWindow(OUTPUT_T、CV_WINDOW_NORMAL)。 namedWindow(match_t、CV_WINDOW_AUTOSIZE)。 関数imshow(INPUT_T、TEMP)。 const のchar * trackbar_title = " マッチアルゴタイプ:" ; createTrackbar(trackbar_title、OUTPUT_T、 &match_method、max_track、Match_Demo)。 // 注意两个指针的作用&match_method、max_track Match_Demo(0、0 ); waitKey(0 )。 リターン 0 ; } 無効 Match_Demo(int型、ボイド * ){ // 結果の行列の定義は、単一チャネルの32ビット浮動小数点である必要があり、 //は、W + 1、H - -ソースイメージ幅x高さ、幅x高テンプレート画像と仮定し、結果はWでなければならない + サイズのH 1。 int型の幅= src.cols - temp.cols + 1 ; int型の高さ= src.rows - temp.rows + 1。; マット結果(幅、高さ、CV_32FC1); matchTemplate(SRC、TEMP、結果、match_method、マット()) ; // 5つの方法を指すポインタをmatch_method // ソース画像テンプレート2. 3.出力画像マッチング結果4. 5.Mat():matchTemplateプレートマジックマッチング関数 正規化(その結果、その結果、0、1、NORM_MINMAX、 - 。1、マット()); // 正規化関数 MINLOCポイント; // 最小点の位置のマッチング演算結果 ポイントMAXLOC; // 最大点位置のマッチング演算結果 ダブル MIN、MAX; // double型 src.copyTo(DST); ポイントtemLoc; //見出さ定義位置点座標 minMaxLoc(その結果、&MIN、MAX&&MINLOC、&MAXLOC、マット()); // 結果の行列の最小値と最大点を見つける IF(match_methodが== == TM_SQDIFF ||はmatch_method {TM_SQDIFF_NORMED)を temLoc =をMINLOC; } そうでなければ{ temLoc = MAXLOC。 } //矩形描画 矩形(DST、のRect(temLoc.x、temLoc.y、temp.cols、temp.rows)、スカラー(0、0、255)、2、。8 ); // 矩形関数パラメータ:対象画像2 。四角形のカラーライン3. 4. 5.デフォルト厚さ8アンチエイリアシングの開始点と長さと幅のRect矩形座標 矩形(結果のRect(temLoc.x、temLoc.y、temp.cols、temp.rows)、スカラー(0、0、255)、2、8 ); 関数imshow(OUTPUT_T、結果); 関数imshow(match_t、DST); }
オリジナル:
テンプレート:
マッチ:(注5種類:知見が描かれた矩形座標点テンプレートマッチングを標識した後、ここに画像の計算によって所有されている結果)
上記の結果から分かるように、第三の方法に加えて、テンプレートマッチングの位置以外の画像に見つかりません
他の4つの方法は、自車両の正確な位置を特定することができます。