OpenCV中的错误svm-> predict()

时间:2017-11-12 17:06:35

标签: opencv c++14

我在我的程序中使用predict(),flow是我的代码:

int plateJudge(vector<Mat>& inVec,vector<Mat>& resultVec){

size_t num = inVec.size();
for (int j = 0; j < num; j++)
{
    Mat inMat = inVec[j];
    Mat gray;
    cvtColor(inMat,gray,COLOR_BGR2GRAY);
    equalizeHist(gray,gray);
    Mat p = gray.reshape(1, 1);
    p.convertTo(p, CV_32FC1);
    int response = (int)svm->predict(p);
    if (response == 1)
    {
        resultVec.push_back(inMat);
    }
}

return 0;

}

但我得到了错误:

error: (-215) samples.cols == var_count && samples.type() == 5 in function predict

我已将图片转换为灰色格式&amp;将数组更改为1 * n,它仍然无法正常工作。此外,svm已经很好地定义了(使用经过训练的模型)。所以,就是这样。希望得到答案!非常感谢。

2 个答案:

答案 0 :(得分:0)

列车矩阵的大小是多少?它的列是否完全等于测试矩阵的大小?

答案 1 :(得分:0)

您应该传递与训练期间相同的维度矩阵。