首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K近邻OpenCV算法

K近邻OpenCV算法
EN

Stack Overflow用户
提问于 2015-12-01 13:49:35
回答 1查看 915关注 0票数 1

我使用的是OpenCV 2.4.12

代码语言:javascript
复制
predictedValues = knn.find_nearest(samples, k, results, neighborResponses, dists);

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

文档

谢谢

Ps.Thanks到guneykayim,我需要添加一些和平的代码,以使我的问题更加明确。我有超过一个向量

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-01 14:09:46

你们分享的文件说:

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34022063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档