2013-09-23 44 views
0

我想使用OpenCV的KNN算法將4個特徵分爲兩類中的一個。在文本文件中,我有我的訓練數據的格式如下:使用OpenCV的KNearest Neighbour - OpenCV; C++

feature_1,feature_2,feature_3中,feature_4,類

其中feature_1,feature_3中,feature_4和類是整數和feature_2是類型浮點數。文本文件的第一行包含每個功能的標題。

但是,OpenCV文檔(http://docs.opencv.org/modules/ml/doc/k_nearest_neighbors.html)指出列車功能需要Mat數據結構中的訓練數據。

我很困惑我如何將我的訓練數據文本文件轉換爲Mat文件。如果任何人都可以幫助我,我會很感激。

回答

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