OpenCV 2.4.5 : FLANN and hierarchicalClustering

标签 opencv hierarchical-clustering flann

我最近开始将应用程序移植到运行 OpenCV 2.4.5 的新平台。

我的部分代码使用 OpenCV 的 FLANN 实现来进行层次聚类,不再编译。

代码如下:

cv::Mat mergedFeatures = cvCreateMat(descriptorTotal, descriptorDims, CV_32F);

int counter = 0;
for (uint j = 0; j < ImageFeatures.size(); j++) {
    cv::Mat features = ImageFeatures[j];
    for (int k = 0; k < features.rows; k++) {
        cv::Mat roi = mergedFeatures.row(counter);
        features.row(k).copyTo(roi);
        counter++;
    }
}

cv::Mat centers = cvCreateMat(1000, descriptorDims, CV_32FC1);
cv::flann::KMeansIndexParams k_params = cv::flann::KMeansIndexParams();
cv::flann::AutotunedIndexParams atp = cv::flann::AutotunedIndexParams();
int numClusters = cv::flann::hierarchicalClustering<float, float>(mergedFeatures, centers, k_params);

我收到的错误(在 Eclipse 中)是 cv::flann::hierarchicalClustering 具有无效参数,并且该函数的两个候选值都不满足。

有人可以解释一下我是如何突然错误地调用这个方法的吗?

非常感谢您的帮助。

最佳答案

我自己解决了这个问题。

而不是接受:

cv::flann::KMeansIndexParams k_params

hierarchicalClustering函数实际上需要:

cvflann::KMeansIndexParams k_params

与 OpenCV 中的 FLANN 库相比,这是一个令人困惑的命名空间约定,我刚刚忽略了编译器错误告诉我的命名空间差异。

现在一切正常。 KMeansIndexParams 类型存在于两个命名空间中,我猜,hierarchicalClustering 方法从 OpenCV 2.3 到 2.4.5 发生了非常细微的变化。

关于OpenCV 2.4.5 : FLANN and hierarchicalClustering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460431/

相关文章:

opencv - opencv 中的 FLANN 运行速度太慢

python - opencv macport python 绑定(bind)

python - 用python过滤颜色的opencv给出错误

r - 如何使用相关性而不是 R 中的欧几里德距离创建用于聚类的距离矩阵?

scikit-learn - sklearn中的聚集聚类

r - 如何在 R 中使用 daisy (gower) 制作样本与特征聚类热图?

image - 我如何使用 Flann 匹配之间的关系来确定合理的单应性?

Python OpenCV 3.1 : KNN not working with the example in docs

python - 如何从图像中提取不同边缘强度的矩形?

python - 算法参数在 OpenCV FlannBasedMatcher 构造函数中取什么值?