【问题标题】:MATLAB kmeans not working for SURF/BRISK Points vectorsMATLAB kmeans 不适用于 SURF/BRISK 点向量
【发布时间】:2014-07-05 18:00:20
【问题描述】:
背景信息
我正在尝试在 SURF/BRISK 功能上应用 Bag of Words 作为 Cats/Dogs 数据集的实验。我已将所有特征提取到一个向量中。
问题:
当我将向量输入 kmeans(points, numPts*0.04) 时,它会说:
“BRISKPoints”类型的输入参数的未定义函数“isnan”
【问题讨论】:
标签:
matlab
computer-vision
k-means
feature-detection
matlab-cvst
【解决方案1】:
这里的问题是BRISKPoints 是一个 MATLAB 对象,而不是一个数值矩阵。你不能直接对它做k-means。应该进入 k-means 的是 extractFeatures 的输出。请注意,extractFeatures 可以返回 SURF 或 FREAK 描述符,具体取决于输入点的类型或 'Method' 参数的值。您可以使用 k-means 对 SURF 描述符进行聚类,它们只是数字向量,但不是 FREAK 描述符,它们是封装在 binaryFeatures 对象中的位字符串。
顺便说一句,从 R2014b 开始,计算机视觉系统工具箱中内置了对词袋图像分类的支持。请看这个example。