先看运行结果:
第一张图是基于形状匹配结果0.992,第二张是匹配结果的ncc结果,1
再看旋转后:
看到没,旋转后,基于形状匹配结果28度,0.517,根据匹配结果ncc结果是0.99
我们看到ncc以形状匹配到的结果,算出的得分还高,是不是立马对形状匹配信心满满?
我们可以算旋转的ncc,基于下面的方法,即就是hog,即梯度角度直方图,我利用下面hog数据,带入ncc公式,搞定:
左边是学习到的hog,右边是匹配到的hog,下图是上图精简,利用数据计算ncc c#运行代码如下:
double 学习凸包的中心x = 0;
double pipei凸包的中心x = 0;
for (int i = 0; i < nccMA2.Count; i++)
{
学习凸包的中心x += nccMA1[i];//nccMA1放的是学习到的hog
pipei凸包的中心x += nccMA2[i];//nccMA2放的是匹配到的hog
}
学习凸包的中心x = 学习凸包的中心x / (nccMA2.Count);
pipei凸包的中心x = pipei凸包的中心x / (nccMA2.Count);
double aa = 0;
double bb = 0;
double cc = 0;
for (int i = 0; i < nccMA2.Count; i++)
{
aa += (nccMA1[i] - 学习凸包的中心x) * (nccMA2[i] - pipei凸包的中心x);
bb += (nccMA1[i] - 学习凸包的中心x) * (nccMA1[i] - 学习凸包的中心x);
cc += (nccMA2[i] - pipei凸包的中心x) * (nccMA2[i] - pipei凸包的中心x);
}
double p = 0;
p = aa / Math.Sqrt(bb * cc);
旋转我们借用了hog的好处,所以ncc就达到了可以旋转匹配。
ncc刚刚实验成功,我们并没有加入到megauging中去。
202402021536
今天腊月23,祝大家新年行大运!