你能帮助我使用SIFT功能进行图像分类吗?
我想根据SIFT功能对图片进行分类:
我想归类为7组。所以,knnclassify(sample(1*10),trainingset(130*10),group(7*1))
错误是: GROUP的长度必须等于TRAINING中的行数。我该怎么办?
答案 0 :(得分:0)
直接来自文档:
CLASS = knnclassify(SAMPLE,TRAINING,GROUP)对每一行进行分类 将SAMPLE中的数据导入TRAINING中的一个组,使用最近的 - 邻居法。 SAMPLE和TRAINING必须是相同的矩阵 列数。 GROUP是TRAINING的分组变量。它的 唯一值定义组,每个元素定义组 相应的TRAINING行所属。 GROUP可以是一个 数字向量,字符串数组或字符串的单元格数组。的 TRAINING 和GROUP必须具有相同的行数。
这意味着group
应该是130x1,并且应该指出每个训练样本属于哪个组。 unique(group)
应该返回7个值 - 您的训练集中包含的七个类别。
如果您还没有指定图像属于哪些类别的组向量,则可以使用kmeans
将训练集分成7组:
group = kmeans(trainingset,7);
knnclassify(sample, trainingset, group);