aihot  2017-04-30 20:00:13  OpenCV |   查看评论   
  • Mat trainingDataMat(3, 2, CV_32FC1, trainingData);  
  •   
  • // step 2:  
  • CvSVMParams params;  
  • params.svm_type = CvSVM::C_SVC;  
  • params.kernel_type = CvSVM::LINEAR;  
  • params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6);  
  •   
  • // step 3:  
  • CvSVM SVM;  
  • SVM.train(trainingDataMat, labelsMat, Mat(), Mat(), params);  
  •   
  • // step 4:  
  • Vec3b green(0, 255, 0), blue(255, 0, 0);  
  • for (int i=0; i<image.rows; i++)  
  • {  
  •     for (int j=0; j<image.cols; j++)  
  •     {  
  •         Mat sampleMat = (Mat_<float>(1,2) << i,j);  
  •         float response = SVM.predict(sampleMat);  
  •   
  •         if (fabs(response-1.0) < 0.0001)  
  •         {  
  •             image.at<Vec3b>(j, i) = green;  
  •         }  
  •         else if (fabs(response+1.0) < 0.001)  
  •         {  
  •             image.at<Vec3b>(j, i) = blue;  
  •         }  
  •     }  
  • }  
  •   
  • // step 5:  
  • int c = SVM.get_support_vector_count();  
  •   
  • for (int i=0; i<c; i++)  
  • {  
  •     const float* v = SVM.get_support_vector(i);  
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV学习笔记(二十六)——小试SVM算法ml

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]