- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果我们知道输入数据中的簇数,我们可以使用 k-means 算法。但是,如果我们不知道聚类的数量,那么我们可以选择使用层次聚类算法,该算法将根据给定的相似性阈值自动返回聚类的数量。层次聚类有两种选择,即凝聚(自下而上)或 split (自上而下), link .我想使用 OpenCV 层次聚类。
但是,与实际的层次聚类不同,OpenCV 的hierarchicalClustering
算法将中心作为参数,它使用行数作为所需的聚类数。对我来说,OpenCV hierarchicalClustering
与 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
);
我们传入的另一个参数是cb_index = 0.2
。它是集群之间距离的阈值还是作为半径阈值的集群边界。
最佳答案
number_of_clusters 是集群的真实数量,它可以小于中心大小。中心大小值是簇数的最大值。
再见example :
// 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);
关于opencv - 为什么我需要在 OpenCV 层次聚类中指定聚类数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55499949/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!