0
私はOpenCVの3.0を使用していると私はこのコードを試してみましたが、私はこのエラーを取得しています:SVMトレーニングデータエラー
using namespace std;
using namespace cv;
using namespace cv::ml;
int main(int argc, char** argv){
int labels[10] = { 0, 0, 1, 1, 0, 1, 1, 1, 1, 0};
cv::Mat lablesMat(10, 1, CV_32SC1, labels);
float trainingData[10][2] = { { 100, 10 }, { 150, 10 }, { 600, 200 }, { 600, 10 }, { 10, 100 }, { 455, 10 }, { 345, 255 }, { 10, 501`z` }, { 401, 255 }, { 30, 150 } };
cv::Mat trainDataMat(10, 2, CV_32FC1, trainingData);
SVM::Params params;
params.svmType = SVM::C_SVC;
params.kernelType = SVM::LINEAR;
params.termCrit = TermCriteria(TermCriteria::MAX_ITER, 100, 1e-6);
// Train the SVM
Ptr<SVM> svm = StatModel::train<SVM>(trainDataMat, ROW_SAMPLE, lablesMat, params);
//Create test features
float testData[2] = { 150, 15 };
cv::Mat testDataMat(2, 1, CV_32FC1, testData);
//Predict the class labele for test data sample
float predictLable = svm->predict(testDataMat);
std::cout << "Predicted label :" << predictLable << "\n";
return(0);
}
OpenCVのエラー:アサーションは(samples.cols == var_count & & samples.typeを失敗しました()== CV_32F)を返します。 は、 'cv :: Exception'のインスタンスをスローした後に呼び出されて終了します。 what():エラー:(-215)samples.cols == var_count & & samples.type()== CV_32F関数の予測で
可能な重複(http://stackoverflow.com/questions/33897803/opencv-unable-to-set-up-svm-パラメータ) – Miki
私の答えを見てください。 'SVM :: Params'はもう存在しないので、これはOpenCV 3.0でコンパイルされません。 – Miki
いいえ、コンパイルできませんでした。実行時にこの問題が発生しました。 –