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
C++ OpenCV Adaboost:“;未实现该功能/特性”;_C++_Opencv_Machine Learning_Classification_Adaboost - Fatal编程技术网

C++ OpenCV Adaboost:“;未实现该功能/特性”;

C++ OpenCV Adaboost:“;未实现该功能/特性”;,c++,opencv,machine-learning,classification,adaboost,C++,Opencv,Machine Learning,Classification,Adaboost,我有来自两个类的一些对象的特征向量,我的目标是用这些信息训练一个增强的分类器。在查看和字母识别示例后,我认为这样做很简单,但由于某些原因,在训练分类器时,我得到以下错误: OpenCV错误:未实现该函数/功能(增强的树只能用于2类分类。) 以下是我的代码的相关部分: Mat X = Mat::zeros(train_size, feat_size, CV_32F); Mat Y = Mat::zeros(train_size, 1, CV_32S); // filling of X with

我有来自两个类的一些对象的特征向量,我的目标是用这些信息训练一个增强的分类器。在查看和字母识别示例后,我认为这样做很简单,但由于某些原因,在训练分类器时,我得到以下错误:

OpenCV错误:未实现该函数/功能(增强的树只能用于2类分类。)

以下是我的代码的相关部分:

Mat X = Mat::zeros(train_size, feat_size, CV_32F);
Mat Y = Mat::zeros(train_size, 1, CV_32S);

// filling of X with the corresponding features for each training sample
// filling of Y with labels 1 and -1 depending on the class

CvBoostParams params(CvBoost::DISCRETE, 100, 0.95, 1, false, 0);
Mat var_type = Mat(feat_size+1, 1, CV_8U, Scalar::all(CV_VAR_ORDERED));
var_type.ptr<uchar>(feat_size)[1] = CV_VAR_CATEGORICAL;

CvBoost boost;
boost.train(X, CV_ROW_SAMPLE, Y, Mat(), Mat(), var_type, Mat(), params);
Mat X=Mat::zero(序列尺寸、专长尺寸、CV尺寸32F);
材料Y=材料::零(系列尺寸,1,CV_32S);
//用每个训练样本的相应特征填充X
//根据类别使用标签1和-1填充Y
CvBoostParams参数(CvBoost::离散,100,0.95,1,false,0);
Mat var_type=Mat(专长大小+1,1,CV_8U,标量::全部(CV_var_有序));
变量类型.ptr(专长大小)[1]=CV\u变量类型;
CvBoost-boost;
推进序列(X,CV_行样本,Y,Mat(),Mat(),var_类型,Mat(),参数);
我认为这里的问题是var_型垫。据我所知,它必须包含每个功能一个条目加上一个响应条目。因为我的特征都是数值测量,所以我将第一个元素设置为CV_VAR_ORDERED,最后一个元素设置为CV_VAR_category

有人能解释一下为什么OpenCV不是两级分类吗

另一件事:对于预测,我不想要实际的预测标签,而是想要属于类1的概率。如果我能得到加权票数的总和,这其实不难计算。predict方法有一个标志returnSum,但该标志表示:如果为true,则返回投票总数,而不是类标签。他们真的是指票数之和还是加权票数之和