マハラノビス距離

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))

でも同じように計算できます。