OpenCV SVM::predict() 结果集总是给出相同的最后一个值
OpenCV SVM::predict() results set always gives same last value
为预测函数的输出创建Mat
Mat results = Mat::zeros(200,1,CV_32FC1);
为预测函数提供特征集和结果 Mat
我想要返回 class 标签。
svm.predict(features,results);
然后结果垫中的最后一个(或本例中的第 200 个)class 标签将始终给出相同的奇怪数字。
qDebug() << k<<":" << results.at<float>(200)
200 : 1.4013e-45
svm
接受了 classes 1 和 -1 的训练。其余 class 标签正确返回,所有标签也准确无误。无论结果集或训练集的大小如何,我都会得到这个奇怪的最后 class 标签。
基于 0 的索引。 200 个元素的数组中的最后一个值是第 199 个元素。使用 at<float>(200)
,您正在读取数组末尾之后的垃圾内存。
为预测函数的输出创建Mat
Mat results = Mat::zeros(200,1,CV_32FC1);
为预测函数提供特征集和结果 Mat
我想要返回 class 标签。
svm.predict(features,results);
然后结果垫中的最后一个(或本例中的第 200 个)class 标签将始终给出相同的奇怪数字。
qDebug() << k<<":" << results.at<float>(200)
200 : 1.4013e-45
svm
接受了 classes 1 和 -1 的训练。其余 class 标签正确返回,所有标签也准确无误。无论结果集或训练集的大小如何,我都会得到这个奇怪的最后 class 标签。
基于 0 的索引。 200 个元素的数组中的最后一个值是第 199 个元素。使用 at<float>(200)
,您正在读取数组末尾之后的垃圾内存。