K-Nearest Neighbors OpenCV算法

时间:2015-12-01 13:49:36

标签: java opencv evaluation knn

我正在使用OpenCV 2.4.12

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

这条线基本上得到了knn的结果。现在我的问题是如何评估结果?我可以使用任何函数吗?否则我需要将predictedresults Mat进行比较吗?

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 个答案:

答案 0 :(得分:1)

您分享的文档说:

  

如果只传递一个输入向量,则所有输出矩阵都是   可选,并且方法返回预测值。

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

P.S。该函数只返回一个 float值,而不是多个值。