相关系数法

本文中灰度匹配采用基于相关系数的方法,根据视差估计得到左像点 这里写图片描述 在右像中的同名点 这里写图片描述,然后以 这里写图片描述为中心,确定搜索窗口的范围,然后计算搜索窗口范围内各点与左像中点 这里写图片描述 的相关系数 这里写图片描述,当搜索窗口内各点均计算完毕之后,找出相关系数最大的 这里写图片描述,如果最大值大于给定的阈值(如0.80),则将该点确定为匹配点,如果均小于阈值则表示该匹配为误匹配,通过该方法即可得到剔除粗差的加密点。相关系数匹配测度公式为:

这里写图片描述
这里写图片描述
这里写图片描述

OnCorrelation(IplImage *left, Iplimage *right)
{
    int w = left->width;
    int h = left->height;
    double r;
    double sum_x = 0;
    double sum_y = 0;
    double x_ave = 0;
    double y_ave = 0;
    double cov = 0;
    double Dx = 0, Dy = 0;
    double Dxy = 0;
    for(int i=0; i<h; i++)
    {
        for(int j=0; j<w; j++)
        {
            sum_x += pixval(left, j, i);
            sum_y += pixval(right, j, i);
        }
    }
    x_ave = sum_x/(w*h);
    y_ave = sum_y/(w*h);
    for(int i=0; i<h; i++)
    {
        for(int j=0; j<w; j++)
        {
            cov += (pixval(left, i, j)-x_ave)(pixval(right, i, j)- y_ave);
            Dx = (pixval(left, i ,j) - x_ave)(pixval(left, i, j)- x_ave);
            Dy = (pixval(right, i, j) - y_ave)(pixval(right, i, j)-y_ave);
        }
    }
    Dxy = sqrt(Dx*Dy);
    r = cov/Dxy;
    if(r<0)
        r = -r;
    return r;
}
static float pixval(IplImage* img, int x, int y)
{
    return cvGet2D(img, y, x).val[0];
}   

“`

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值