マハラノビス距離
OpenCVでマハラノビス距離を計算するには
double norm = cvMahalanobis(x, mean, covinv);
を用いると簡単に計算することができます。
cvmSub(x, mean, tmp1); // x-m cvmCopy(tmp1, tmp2); cvmMul(class_covinv, tmp2, tmp2); // covinv * (x-m) double norm = cvDotProduct(tmp1, tmp2); // (x-m)^t * covinv * (x-m) norm = sqrt (norm); // sqrt((x-m)^t * covinv * (x-m))
でも同じように計算できます。