运行 matlab 中结合 SURF 和 SIFT 描述符的 k-means

run k-means on combination of SURF and SIFT descriptors in matlab

如何在MATLAB中组合SURF和SIFT描述符,其中SIFT为128D,SURF为64D,它们的描述符数量不同,另一点是SURF描述符的值比SIFT小很多,有些它们中的一部分是负的,而所有的筛选描述符都是正的;然后 运行 k-means 对它们的组合? 有一个相关的讨论 here 但我无法理解,答案是针对 OpenCv

感谢任何帮助

一种解决方案是将这两个描述符的结果转换为统一的大小,然后轻松地将它们连接起来。例如,使用 PCA 将它们都转换为 32D 维度的 SIFT(32 * m as M_prime)和 SURF(32*n as N_prime)并像这样连接它们:combined_feature_vectors = [M_prime N_prime]。因此,您有 + n 个大小为 32 的描述符。

您可以通过对每个算法的特征进行归一化来解决 SURF 值较小的问题。