0

OpenCV中采用KNearest类的第一个参数的确切含义是什么CvMat* trainData

我是否必须传递CvMat*类质心的位置或其他信息?

4

1 回答 1

3

正如这里所说,它是所有训练样本的缓存,即:你需要一个初始集。之后,您可以请求训练集中最接近的所有新向量。kNN 是一个分类器(这就是它继承自 CvStatModel 的原因。一个典型的用途是:您有一组根据您想要的计算的特征,例如来自图像数据集的 ORB 特征(但不限于关键点!),并且您想要知道未知图像,它是什么。您使用训练集(即:在您知道该类的每个图像上计算的特征)训练您的 kNN,计算未知图像上的特征,然后在训练集(带有find_nearest)。您查看每个最近邻居的标签,多数标签可能是您的图像的类=>您已经识别和图像。

如果您正在寻找将一组数据聚类到 K 类的解决方案(即:对于一组向量,您希望将其划分为 k 个组),请查看kmeans

于 2013-08-07T05:12:49.150 回答