OpenCV SVM :: predict()结果集总是给出相同的最后一个值

时间:2015-04-16 16:38:22

标签: c++ opencv svm

为预测函数的输出创建Mat

    Mat results = Mat::zeros(200,1,CV_32FC1);  

为预测函数提供功能集和结果Mat我想要返回的类标签。

    svm.predict(features,results);  

然后结果垫中的最后一个(或本例中为第200个)类标签将始终给出相同的奇怪数字。

    qDebug() << k<<":" << results.at<float>(200)

200:1.4013e-45

svm接受了1级和-1级的训练。其余的类标签都正确返回,所有这些标签也准确无误。无论结果集或训练集的大小,我都会得到这个奇怪的最后一个标签。

1 个答案:

答案 0 :(得分:1)

基于0的索引。 200个元素的数组中的最后一个值是第199个元素。使用at<float>(200),您将读取数组末尾的垃圾内存。