Halcom 发表于 2017-1-23 20:45:50

巴氏距离和巴氏系数

       对于在X 数域上的两个离散概率分布p 和q,巴氏距离定义为:
                                                                              DB(p,q) = -ln(BC(p,q))
其中 BC(p,q) = Σsqrt(p(x)*q(x))
       BC 被称作Bhattacharyya 系数(巴氏系数),0≤BC≤1 且0≤DB≤∞
       巴氏系数全称为巴塔恰里雅(Bhattacharyya coefficient) 系数,是向量相似度匹配中(如:用于衡量参考模版与候选模版的颜色概率分布的相似度或者说相关性测量)最常用的小算法。

      例如两幅图像A和B进行巴氏系数求解,求解A的直方图p,B的直方图q
float CalcuBhattacharyya( float *p, float *q, int length)
{
//参数:p和q为指向待匹配的两个向量(一维数组)的首地址指针,//length为数组长度
int i = 0;
float rho = 0.0;
for ( i = 0; i < length; i )
{
       rho = rho + sqrt( p*q );//这里最好用指针不用数组下标,
}
return rho;
}
注:MATLAB中,p*q可为向量直接相乘,不是点乘。
rho 越大则认为参考模版与候选模版的颜色概率分布的相似度越高


页: [1]
查看完整版本: 巴氏距离和巴氏系数