Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 19555

Android svm implementation error

$
0
0
I tried to implement svm in my android application but when i run my application i get errors. // Creating Training Data Mat trainData = new Mat(); Mat train_labels = new Mat(); for (int i = 0; i <549; i++) { String path = Environment.getExternalStorageDirectory().toString() + "/Pictures/train/" + i + ".png"; Mat img = Imgcodecs.imread(path); Log.i(TAG,"error"+i+img.empty()); img.convertTo(img, CvType.CV_32FC1); // Convert to float Size dsize = new Size(25, 25); Imgproc.resize(img, img, dsize); img.convertTo(img, CvType.CV_32FC1); Mat imgResized = img.reshape(1, 1); // make continuous trainData.push_back(imgResized); // add 1 item train_labels .push_back(new Mat(1, 1, CvType.CV_32FC1, new Scalar(i))); } Mat response = new Mat(); Mat tmp; tmp = train_labels.reshape(1, 1); // make continuous tmp.convertTo(response, CvType.CV_32FC1); // Convert to float SVM svm = SVM.create(); TermCriteria criteria = new TermCriteria(TermCriteria.EPS + TermCriteria.MAX_ITER,100,0.1); svm.setKernel(SVM.LINEAR); svm.setType(SVM.C_SVC); svm.setGamma(0.5); svm.setNu(0.5); svm.setC(1); svm.setTermCriteria(criteria); svm.train(trainData, Ml.ROW_SAMPLE,train_labels); // For Storing training data File datasetFile = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DOWNLOADS), "dataset.xml"); svm.save(datasetFile.getAbsolutePath()); And this is the error: 05-28 11:05:01.921: E/cv::error()(2252): OpenCV Error: Bad argument (in the case of classification problem the responses must be categorical; either specify varType when creating TrainData, or pass integer responses) in virtual bool cv::ml::SVMImpl::train(const cv::Ptr&, int), file /home/maksim/workspace/android-pack/opencv/modules/ml/src/svm.cpp, line 1610 05-28 11:05:01.931: E/org.opencv.ml(2252): ml::train_10() caught cv::Exception: /home/maksim/workspace/android-pack/opencv/modules/ml/src/svm.cpp:1610: error: (-5) in the case of classification problem the responses must be categorical; either specify varType when creating TrainData, or pass integer responses in function virtual bool cv::ml::SVMImpl::train(const cv::Ptr&, int)

Viewing all articles
Browse latest Browse all 19555

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>