0

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

特征_1,特征_2,特征_3,特征_4,类

其中 feature_1、feature_3、feature_4 和 class 是整数,而 feature_2 是浮点类型。文本文件的第一行包含每个特征的标题。

但是,OpenCV 文档 ( http://docs.opencv.org/modules/ml/doc/k_nearest_neighbors.html ) 指出训练函数需要 Mat 数据结构中的训练数据。

我对如何将训练数据的文本文件转换为 Mat 感到困惑。如果有人可以帮助我解决这个问题,我将不胜感激。

4

1 回答 1

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方法

于 2013-09-23T14:58:19.280 回答