opencv中使用flann的分层聚类
我试图使用opencv 2.4.2中的HierarchycalClustering方法 它工作正常,但问题是,我不理解它接受的参数,例如分支 我认为我的问题在于我总是只得到一个集群 我的输入是LBPH特征的cv::Mat(用于人脸检测)行数为12,列数为6272。 不管分支因子的值是多少,我总是得到一个簇,它的质心是来自输入矩阵grouppeed_one_ferson_特征的行的平均值。 你能给我一些建议吗 非常感谢 代码如下:opencv中使用flann的分层聚类,opencv,hierarchical-clustering,Opencv,Hierarchical Clustering,我试图使用opencv 2.4.2中的HierarchycalClustering方法 它工作正常,但问题是,我不理解它接受的参数,例如分支 我认为我的问题在于我总是只得到一个集群 我的输入是LBPH特征的cv::Mat(用于人脸检测)行数为12,列数为6272。 不管分支因子的值是多少,我总是得到一个簇,它的质心是来自输入矩阵grouppeed_one_ferson_特征的行的平均值。 你能给我一些建议吗 非常感谢 代码如下: cv::Mat groupped_one_person_featu
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));
cv::Mat-groupped\u-one\u-person\u功能;
.... // 用数据填充grouppeed_one_ferson_功能
int Nclusters=50;
cv::Mat质心(Nclusters,Features.data[0][0].cols,cv_32FC1);
int count=cv::flann::hierarchicalClusteringgroupped_one_person_特征、质心、cvflann::KMeansIndexParams(2000,11,cvflann::flann_CENTERS_KMEANSPP));
首先,您在最后一行中遗漏了一个括号:
int count = cv::flann::hierarchicalClustering<cvflann::L1<float>>(groupped_one_person_features,centroids,cvflann::KMeansIndexParams(2000,11,cvflann::FLANN_CENTERS_KMEANSPP));
int count=cv::flann::hierarchicalClustering(分组一人特征、质心、cvflann::KMeansIndexParams(2000,11,cvflann::flann_CENTERS_KMEANSPP));
按照顺序,参数为(根据flann_base.hpp
):
- 要聚集的点
- 计算出的聚类中心。矩阵应预先分配并居中。行是请求的群集数
- 聚类参数
- 用于聚类的距离
质心矩阵只有一行。你能核实一下吗
KMeansIndexParams
的参数是(根据kmeans\u index.h
):
- 分支因子:树中节点的子节点数
- 迭代次数:在一个kmeans集群(kmeans树)中执行的最大迭代次数
- centers\u init:用于为kmeans树拾取初始群集中心的算法
- cb_指数:集群边界指数。搜索kmeans树时使用
可以从文档中轻松阅读参数的含义。你是否真的知道这些参数的含义,即改变它们会导致什么样的行为?