はテンプレート画像とソース画像間の類以度が最も高い画素を探索する
MatchList = FindBestMatches(Match, TemplateImageSize, Method);
2次元の行列で、型は doubleで、MatchTemplateの結果である
構成要素2つになるベクトルで、テンプレート画像における行と列の数を含む
定数で、型はuint8で、以下の値は可能である:
MATCH_LEAST_SQUARES: SourceImageとTemplateImage間のグレー値の差の2乗の合計
MATCH_CORRELATION: SourceImageとTemplateImage間の相関
MATCH_LEAST_SQUARES_NORM: SourceImageとTemplateImage間のグレー値の差の2乗の正規化された合計
MATCH_CORRELATION_NORM: SourceImageとTemplateImage間のの正規化された相関
行列で、列2つがある。各行は画素における座標を指定する。1つ目の構成要素は列を指定し、2つ目の列は行を指定する
本関数はテンプレート画像とソース画像間の類以度が最も高い画素を探索する。発見された画素の座標はソース画像に相当する。
global MATCH_CORRELATION_NORM; global IPD_PATH; SourceColorImage = ReadImage(IPD_PATH + 'demos\teaset.png'); SourceImage = RGB2Gray(SourceColorImage); TemplateColorImage = ReadImage(IPD_PATH + 'demos\cropped_image.png'); TemplateImage = RGB2Gray(TemplateColorImage); Match = MatchTemplate(SourceImage, TemplateImage, MATCH_CORRELATION_NORM); MatchList = FindBestMatches(Match, size(TemplateImage), MATCH_CORRELATION_NORM); SquareList = list(); for n = 1 : size(MatchList, 1) SquareList($ + 1) = struct('BoundingBox', cat(2, MatchList(n, :) - [1 1], [3 3])'); end; SourceHandle = figure(); ShowColorImage(SourceColorImage, 'Image with Marked Match Positions'); DrawBoundingBoxes(SquareList, [0 1 0], SourceHandle); TemplateHandle = figure(); ShowColorImage(TemplateColorImage, 'Template Image'); | ![]() | ![]() |