使用OpenCV的KNearest Neighbor - OpenCV; C ++

时间:2013-09-23 10:07:09

标签: c++ opencv machine-learning nearest-neighbor knn

我想使用OpenCV的KNN算法将4个特征分类为两个类中的一个。在文本文件中,我的训练数据格式如下:

  

feature_1,feature_2,feature_3中,feature_4,类

其中feature_1,feature_3,feature_4和class是整数,feature_2的类型为float。文本文件的第一行包含每个功能的标题。

但是,OpenCV文档(http://docs.opencv.org/modules/ml/doc/k_nearest_neighbors.html)声明列车功能需要Mat数据结构中的训练数据。

我很困惑如何将训练数据的文本文件转换为Mat。如果有人能帮助我,我会非常感激。

1 个答案:

答案 0 :(得分:0)

基本上,OpenCV实现了CvMLData,它可以读取csv个文件(你的文件是逗号分隔的文件)。

根据文件:http://docs.opencv.org/modules/ml/doc/mldata.html

创建CvMLData对象后,可以使用read_csv方法:

read_csv(const char* filename)

加载它,然后使用get_values()获取指向输入数据的指针Matget_responses(),以获取指向标记的指针Mat

要设置哪个列被视为“响应”(标签),请使用set_response_idx方法