为什么我需要在OpenCV分层集群中指定集群数量
如果我们知道输入数据中的聚类数,我们可以使用k-means算法。然而,如果我们不知道聚类的数量,那么我们可以选择使用分层聚类算法,该算法将根据给定的相似性阈值自动返回聚类的数量。分层聚类有两种选择,即聚集(自下而上)或分裂(自上而下), . 我想使用OpenCV分层聚类 但是,OpenCVs为什么我需要在OpenCV分层集群中指定集群数量,opencv,c++14,hierarchical-clustering,Opencv,C++14,Hierarchical Clustering,如果我们知道输入数据中的聚类数,我们可以使用k-means算法。然而,如果我们不知道聚类的数量,那么我们可以选择使用分层聚类算法,该算法将根据给定的相似性阈值自动返回聚类的数量。分层聚类有两种选择,即聚集(自下而上)或分裂(自上而下), . 我想使用OpenCV分层聚类 但是,OpenCVsHierarchycalClustering算法将中心作为参数,并使用行数作为所需的聚类数,这与实际的分层聚类不同。对我来说,OpenCVHierarchycalClustering与k-means聚类相同。
HierarchycalClustering
算法将中心作为参数,并使用行数作为所需的聚类数,这与实际的分层聚类不同。对我来说,OpenCVHierarchycalClustering
与k-means聚类相同。
OpenCV中是否有其他函数可以根据给定的相似性阈值返回簇数
typedef cv::flann::L2<float> D;
float a[] = {0, 0, 0, 0 };
cvflann::Matrix< D::ResultType> centers(a, 2, 2, 0);
const cvflann::KMeansIndexParams params1(
2,
100,
cvflann::flann_centers_init_t::FLANN_CENTERS_RANDOM,
.2
);
int number_of_clusters = cvflann::hierarchicalClustering<D> (features,
centers,
params1
);
typedef cv::flann::L2 D;
浮点a[]={0,0,0,0};
cvflann::矩阵中心(a,2,2,0);
常量cvflann::KMeansIndexParams params1(
2.
100,
cvflann::flann\u centers\u init\u t::flann\u centers\u RANDOM,
2.
);
int number_of_clusters=cvflann::HierarchycalClustering(特征,
中心,
参数1
);
我们传入的另一个参数是
cb_index=0.2
。它是簇之间距离的阈值,还是作为半径阈值的簇边界。number\u of\u clusters是簇的实际数目,可以小于中心大小。“中心大小”值是群集数的最大值
再见:
//集群
Mat1f中心(clusterNum,descriptorNum);
::cvflann::KMeansIndexParams kmean_params;
unsigned int resultClusters=HierarchycalClustering(样本、中心、kmean_参数);
if(结果集群<集群)
{
centers=centers.rowRange(范围(0,resultClusters));
}
索引法兰索引(中心,KDTreeIndexParams());
printf(“结果群集编号:%u\n”,结果群集);
不是向下投票人,但你到底在寻找什么?我已经为自己更新了问题,我总是得到与中心行数相同的聚类数。
// clustering
Mat1f centers(clusterNum, descriptorNum);
::cvflann::KMeansIndexParams kmean_params;
unsigned int resultClusters = hierarchicalClustering< L2<float> >(samples, centers, kmean_params);
if (resultClusters < clusterNum)
{
centers = centers.rowRange(Range(0, resultClusters));
}
Index flann_index(centers, KDTreeIndexParams());
printf("resulted clusters number: %u\n", resultClusters);