私はそれが古い質問であることを知っていますが、ここに答えがあります。
MatchTemplate を実行すると、グレースケールの画像が出力されます。その後、MinMax を実行する必要があります。次に、探している範囲に結果があるかどうかを確認できます。以下の例では、EmguCV (C# の OpenCV のラッパー) を使用して、0.75 未満の場合にのみ、最良の検索 (minValues 配列のインデックス 0) の周りに四角形を描画します (このしきい値は必要に応じて調整できます)。
コードは次のとおりです。
Image<Gray, float> result = new Image<Gray, float>(new System.Drawing.Size(nWidth, nHeight));
result = image.CurrentImage.MatchTemplate(_imageTemplate.CurrentImage, Emgu.CV.CvEnum.TM_TYPE.CV_TM_SQDIFF_NORMED);
double[] minValues;
double[] maxValues;
System.Drawing.Point[] minLocations;
System.Drawing.Point[] maxLocations;
result.MinMax(out minValues, out maxValues, out minLocations, out maxLocations);
if (minValues[0] < 0.75)
{
Rectangle rect = new Rectangle(new Point(minLocations[0].X, minLocations[0].Y),
new Size(_imageTemplate.CurrentImage.Width, _imageTemplate.CurrentImage.Height));
image.CurrentImage.Draw(rect, new Bgr(0,0,255), 1);
}
else
{
//Nothing has been found
}
編集
出力の例を次に示します。