使用emgu cv和c#

时间:2015-06-24 12:51:50

标签: c# svm emgucv

你好我正在进行人员识别,我想从多类SVM分类中获得每个测试样本(图像)的分数。我正在使用c#和EmguCv。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

唯一方法 - 减少OpenCV并从中获得所有投票。你可以在文件“svm.cpp”中看到它。 我在预测函数中添加了这段代码:

    bool Yes = false;
    if( _results.needed() )
    {
        _results.create(class_count+1, 1, samples.type());
        results = _results.getMat();
        Yes = true;
    }
    else
    {
        CV_Assert( nsamples == 1 );
        results = Mat(1, 1, CV_32F, &result);
    }

    PredictBody invoker(this, samples, results, returnDFVal);
    if( nsamples < 10 )
        invoker(Range(0, nsamples));
    else
        parallel_for_(Range(0, nsamples), invoker);
    if (Yes)
    {
        result = results.at<float>(class_count);
    }
    return result;

这段代码在PredictBody中

  if (results->cols + results->rows > 2)
    {
        for (int jk = 0; jk < class_count; jk++)
            results->at<float>(jk) = (float)vote[jk];
        results->at<float>(class_count) = result;
    }
    else
          results->at<float>(si) = result;

所以,我从opencv收回所有需要的投票。 但是,正如您从svm.cpp中看到的那样,没有正常的方法可以做到这一点。