57 const GaussianMixtureDistributionBasePtr& gmm2)
override
65 const Eigen::VectorXf d = g2->toEigenMean() - g1->toEigenMean();
66 const Eigen::MatrixXf
s = 2 * (g1->toEigenCovariance() + g2->toEigenCovariance());
67 const Eigen::MatrixXf distm = d.transpose() *
s.inverse() * d;
69 return sqrtf(distm(0, 0));
74 const NormalDistributionBasePtr& g)
80 for (
int i = 0; i < gmm->size(); ++i)
82 const GaussianMixtureComponent comp = gmm->getComponent(i);
85 result += getDistance(g1, g2) * comp.weight;
93 const GaussianMixtureComponent& comp2)
override
98 Eigen::VectorXf d = gaussian2->toEigenMean() - gaussian1->toEigenMean();
99 Eigen::MatrixXf
s = 2 *
100 (comp1.weight * gaussian1->toEigenCovariance() +
101 comp2.weight * gaussian2->toEigenCovariance()) /
102 (comp1.weight + comp2.weight);
103 Eigen::MatrixXf distm = d.transpose() *
s.inverse() * d;
108 return sqrtf(distm(0, 0));