java - K近邻OpenCV算法

标签 java opencv evaluation knn

我正在使用 OpenCV 2.4.12

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

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

Documentation

谢谢

Ps.感谢 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);
}

最佳答案

您共享的文档说:

If only a single input vector is passed, all output matrices are optional and the predicted value is returned by the method.

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

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

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

相关文章:

java - 如何修复 "Error: ' ;' expected"或 "Error: ' )' expected"以及 boolean 值中的错误

java - 将多个 Iterable 包装成一个 Iterable

opencv - SWT(Stroke Width Transform)可以帮助OCR截图吗?

python - OpenCV,将物体分成几部分

python - OpenCV - 访问 cv2.findContours 变量

algorithm - 如何根据增量数据评估复杂的表达式树?

将 Lambda 应用于返回另一个列表的列表的 Java 8 惯用方法?

list - Scala:如何创建包含多个元素的 "eager evaluated"列表?

c - 在 C 中调用函数之前的参数评估顺序

java - 阻止冒泡排序对列表中的空白项进行排序