我正在尝试使用opencv 2.4.2中的方法hierarchicalClustering。
它没有错误地工作,但问题是,我不承认它接受的参数,例如。分支...
而且我觉得我的问题始终只是一个集群。
我的输入是一个cv :: Mat的LBPH特征(用于面部检测)行数为12,列数为6272。 无论分支因子的值是多少,我总是只得到一个簇,它的质心是来自输入矩阵grouppeed_one_ferson_features的行的平均值。 你能建议???
感谢很多!!!
继承人代码:
cv::Mat groupped_one_person_features;
.... // fill grouppeed_one_ferson_features with data
int Nclusters=50;
cv::Mat centroids (Nclusters,Features.data[0][0].cols,CV_32FC1);
int count = cv::flann::hierarchicalClustering<cvflann::L1<float>>groupped_one_person_features,centroids,cvflann::KMeansIndexParams(2000,11,cvflann::FLANN_CENTERS_KMEANSPP));
答案 0 :(得分:3)
首先,你错过了最后一行的括号:
int count = cv::flann::hierarchicalClustering<cvflann::L1<float>>(groupped_one_person_features,centroids,cvflann::KMeansIndexParams(2000,11,cvflann::FLANN_CENTERS_KMEANSPP));
在顺序中,参数是(根据flann_base.hpp
):
因此,如果您总是获得一个群集,则可能意味着您的centroids
矩阵只有一行。你能核实一下吗?
KMeansIndexParams
的参数是(根据kmeans_index.h
):