【问题标题】:Using OpenCV's KNearest Neighbour - OpenCV; C++使用 OpenCV 的 KNearest Neighbor - OpenCV; C++
【发布时间】:2013-09-28 04:37:07
【问题描述】:

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

feature_1,feature_2,feature_3,feature_4,class

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

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

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

【问题讨论】:

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


    【解决方案1】:

    基本上,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 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-09
      • 2015-05-06
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2013-02-01
      相关资源
      最近更新 更多