首页 文章

K-Nearest Neighbors OpenCV算法

提问于
浏览
1

我正在使用OpenCV 2.4.12

predictedValues = knn.find_nearest(samples, k, results, neighborResponses, dists);

这条线基本上得到了knn的结果 . 现在我的问题是如何评估结果?是否有任何我可以使用的功能?否则我需要比较 predictedresults 垫?

Documentation

谢谢

Ps.Thanks to guneykayim,我需要添加一些代码和平,以使我的问题更清楚 . 我有超过1个向量

Mat predicted = new Mat(results.rows(), 1, CvType.CV_32F);
float predictedValue;
for (int i = 0; i < testData.rows(); i++)
{
        final Mat samples = testData.row(i);
        //predicted.<Float>at(i,0) = knn.find_nearest(samples, k);
        predictedValue = knn.find_nearest(samples, k, results, neighborResponses, dists); //TODO: wie mat dists aufsetzen-10?
        predicted.put(i, 1, predictedValue);
}

1 回答

  • 1

    您分享的文档说:

    如果仅传递单个输入向量,则所有输出矩阵都是可选的,并且该方法返回预测值 .

    因此,如果 samples 对象具有多个向量,则使用 results 对象返回结果,并且不需要 predictedValues 对象 . 但是如果你的输入只是一个向量,那么你不需要 results 对象,你可以使用函数返回值,在你的情况下是 predictedValues .

    P.S. 该函数返回 only one float 值,而不是多个值 .

相关问题