使用EMGU的两个图像之间的相关性

问题描述 投票:0回答:1

我已经搜索了几个小时...找不到任何帮助。

我使用的是EMGU(初学者),并且在这里找到:( 如何计算EMGU中两个图像之间的相关性? )执行相关性的方式:

Image<>.MatchTemplate() 

我的问题是如何获得x,y移位。

非常感谢。

c# opencv emgucv
1个回答
0
投票

天哪...终于找到了+ 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;
© www.soinside.com 2019 - 2024. All rights reserved.