私はこのようなコードを持っています:
Mat img = Highgui.imread(inFile);
Mat templ = Highgui.imread(templateFile);
int result_cols = img.cols() - templ.cols() + 1;
int result_rows = img.rows() - templ.rows() + 1;
Mat result = new Mat(result_rows, result_cols, CvType.CV_32FC1);
Imgproc.matchTemplate(img, templ, result, Imgproc.TM_CCOEFF);
/////Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1, new Mat());
for (int i = 0; i < result_rows; i++)
for (int j = 0; j < result_cols; j++)
if(result.get(i, j)[0]>?)
//match!
テンプレート画像の複数の発生を見つけるために、入力画像を解析する必要があります。私はこのような結果を得たい:
result[0][0]= 15%
result[0][1]= 17%
result[x][y]= 47%
TM_COEFF を使用すると、すべての結果は [-xxxxxxxx.xxx,+xxxxxxxx.xxx] になります。
TM_SQDIFF を使用すると、すべての結果は xxxxxxxx.xxx になります。
TM_CCORR を使用すると、すべての結果は xxxxxxxx.xxx になります。
一致または不一致を検出するにはどうすればよいですか? if の正しい条件は何ですか? マトリックスを正規化すると、アプリケーションは値を 1 に設定し、テンプレートが画像に保存されていないかどうかを検出できません (すべての不一致)。
前もって感謝します