1
這是一個愚蠢的問題,因爲我是很新的SVM,飼餵提取HOG特徵爲CvSVM的火車功能
我已經成功地提取特徵和位置使用的OpenCV的HoGDescriptor:
vector<float> features;
vector<Point> locations;
hog_descriptors.compute(image, features, Size(0, 0), Size(0, 0), locations);
然後我繼續使用CvSVM根據我提取的功能來訓練SVM。
Mat training_data(features);
CvSVM svm;
svm.train(training_data, labels, Mat(), Mat(), params);
這給了我一個錯誤:
OpenCV Error: Bad argument (There is only a single class) in cvPreprocessCategoricalResponses, file /opt/local/var/macports/build/
我的問題是,我該如何轉換矢量<特點>到適當的矩陣被送入CvSVM?顯然我做錯了,OpenCV的教程顯示,包含訓練數據的2D矩陣被輸入到SVM中。那麼,如何將矢量<特徵>轉換爲二維矩陣,第二維中的值是多少?
究竟是什麼特徵?它們是由歸一化幅度直方圖組成的9個箱子嗎?
你能提供完整的代碼嗎?至少我們可以比較並查看原始帖子中的錯誤?謝謝! – 2013-09-30 13:03:58