我已经搜索了几个小时...找不到任何帮助。
我使用的是EMGU(初学者),并且在这里找到:( 如何计算EMGU中两个图像之间的相关性? )执行相关性的方式:
Image<>.MatchTemplate()
我的问题是如何获得x,y移位。
非常感谢。
天哪...终于找到了+ maxVal提供了比赛的质量。
var res = img1.MatchTemplate(img2, TemplateMatchingType.CcoeffNormed);
int maxXIdx = 0, maxYIdx = 0;
float maxVal = float.MinValue;
var dat = res.Data;
int numChanels = dat.GetLength(2),
numCols = res.Cols, numRows = res.Rows;
for (int i = 0; i < numChanels; i++)
{
for (int x = 0; x < numCols; x++)
{
for (int y = 0; y < numRows; y++)
{
var val = dat[y, x, i];
if (val > maxVal)
{
maxVal = val;
maxXIdx = x;
maxYIdx = y;
}
}
}
}
int shiftX = maxXIdx, shiftY = maxYIdx;