最近做目标跟踪,用到EM 算法,很自然地,机器学习除了仅有的Mahalanobis、K均值在CXCORE中,人脸检测算法在CV中,其他的都在ml库中,其实,有些情况不是这样的,期望最大化算法在后来的opencv库已经被迁移到了opencv2/legacy/legacy.hpp,如果再用ml库则会提示找不到,当然这只是EM的C版本,C++版本仍然在ml 库中。
所以,使用CvEMParams、CvEM的时候,应该包含:#include <opencv2/legacy/legacy.hpp>,而不是#include <opencv2/ml/ml.hpp>