[C#]OpenCVで正規化相互相関[NCC(Normalized Cross-Correlation)]を計算する


比較元画像と比較画像との類似度として、正規化相互相関を用いられる場合もあります。類似度が1に近いほど、似ている位置となります。
OpenCVSharpを使用したコードは以下になります。

tatic double Get_NCCMax(IplImage target, IplImage template)
{
IplImage dst_img;
double min_val, max_val;
CvPoint min_loc, max_loc;
CvSize dst_size;
dst_size = new CvSize(target.Width - template.Width + 1, target.Height - template.Height + 1);
dst_img = Cv.CreateImage(dst_size, BitDepth.F32, 1);
Cv.MatchTemplate(target, template, dst_img, MatchTemplateMethod.CCorrNormed);
//相関係数の最大値と最小値を取得
Cv.MinMaxLoc(dst_img, out min_val, out max_val, out min_loc, out max_loc, null);
Cv.ReleaseImage(dst_img);
//相関係数の最大値を返す
return max_val;
}



0 件のコメント :

コメントを投稿