我正在使用OpenCV 2.4.12

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

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

Documentation

谢谢

致谢。感谢guneykayim,我需要添加一些代码来使我的问题更加清楚。我有1个以上的 vector
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);
}

最佳答案

您共享的文档说:



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

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

关于java - K最近邻居OpenCV算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34022063/

10-11 22:55
查看更多