Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
openCV中的SVM类型_Opencv_Svm - Fatal编程技术网

openCV中的SVM类型

openCV中的SVM类型,opencv,svm,Opencv,Svm,我正在使用opencv开发一个非常简单的图像分类器。我想使用支持向量机类型的多边形,但它会产生误差,而其他的如sigmoid,RBF工作良好。我将参数定义如下: SVMParams params; params.svm_type = SVM::C_SVC; params.kernel_type = SVM::POLY; params.gamma = 20; params.degree = 0; params.coef0 = 0; params.C = 7; params.nu = 0.0; p

我正在使用opencv开发一个非常简单的图像分类器。我想使用支持向量机类型的多边形,但它会产生误差,而其他的如sigmoid,RBF工作良好。我将参数定义如下:

SVMParams params;
params.svm_type = SVM::C_SVC;
params.kernel_type = SVM::POLY;
params.gamma = 20;
params.degree = 0;
params.coef0 = 0;

params.C = 7;
params.nu = 0.0;
params.p = 0.0;

params.class_weights = NULL;
params.term_crit.type = CV_TERMCRIT_ITER +CV_TERMCRIT_EPS;
params.term_crit.max_iter = 1000;
params.term_crit.epsilon = 1e-6;

错误读取为openCV错误:CvSVM::set_params中的一个参数值超出范围(内核参数必须为正)。我不确定错误是什么。?

对于多项式核,
阶数必须大于1(0无效,1为线性)。对于大多数软件包,度的默认值为3

RBF和sigmoid内核与您的设置配合得很好,因为它们不使用
。作为参考,所讨论的内核函数包括:

  • 多项式:
    k(u,v)=(gamma*u'*v+coef0)^度
  • 径向基函数:
    k(u,v)=exp(-gamma*| u-v | ^2)
  • 乙状结肠:
    k(u,v)=tanh(gamma*u'*v+coef0)

可能是
。零次多项式内核没有意义,因为它的值是常量。您使用的是哪个版本的OpenCV?