OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
公共类型 | 公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::ml::KNearest 类参考abstract

该类实现了 K-最近邻模型。 更多...

#include <opencv2/ml.hpp>

cv::ml::KNearest 的协作图

公共类型

enum  类型 {
  BRUTE_FORCE =1 ,
  KDTREE =2
}
 KNearest 算法的实现。 更多...
 
- 从 cv::ml::StatModel 继承的公共类型
enum  标志 {
  UPDATE_MODEL = 1 ,
  RAW_OUTPUT =1 ,
  COMPRESSED_INPUT =2 ,
  PREPROCESSED_INPUT =4
}
 

公共成员函数

virtual float findNearest (InputArray samples, int k, OutputArray results, OutputArray neighborResponses=noArray(), OutputArray dist=noArray()) const =0
 查找输入向量的邻居并预测响应。
 
virtual int getAlgorithmType () const =0
 
virtual int getDefaultK () const =0
 
virtual int getEmax () const =0
 
virtual bool getIsClassifier () const =0
 
virtual void setAlgorithmType (int val)=0
 
virtual void setDefaultK (int val)=0
 
virtual void setEmax (int val)=0
 
virtual void setIsClassifier (bool val)=0
 
- 从 cv::ml::StatModel 继承的公共成员函数
virtual float calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const
 计算训练或测试数据集上的误差。
 
virtual bool empty () const CV_OVERRIDE
 如果 Algorithm 为空(例如,在开始时或读取失败后),则返回 true。
 
virtual int getVarCount () const =0
 返回训练样本中的变量数量。
 
virtual bool isClassifier () const =0
 如果模型是分类器,则返回 true。
 
virtual bool isTrained () const =0
 如果模型已训练,则返回 true。
 
virtual float predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0
 预测提供样本的响应。
 
virtual bool train (const Ptr< TrainData > &trainData, int flags=0)
 训练统计模型。
 
virtual bool train (InputArray samples, int layout, InputArray responses)
 训练统计模型。
 
- 从 cv::Algorithm 继承的公共成员函数
 算法 ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储区读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储在文件存储区中。
 
void write (FileStorage &fs, const String &name) const
 

静态公共成员函数

static Ptr< KNearestcreate ()
 创建空模型。
 
static Ptr< KNearestload (const String &filepath)
 从文件加载并创建序列化 knearest。
 
- 从 cv::ml::StatModel 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 使用默认参数创建和训练模型。
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承的成员

- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

该类实现了 K-最近邻模型。

另请参阅
K-最近邻

成员枚举文档

◆ 类型

KNearest 算法的实现。

枚举器
BRUTE_FORCE 
KDTREE 

成员函数文档

◆ create()

static Ptr< KNearest > cv::ml::KNearest::create ( )
static
Python
cv.ml.KNearest.create() -> retval
cv.ml.KNearest_create() -> retval

创建空模型。

该静态方法创建空的 KNearest 分类器。然后应该使用 StatModel::train 方法对其进行训练。

◆ findNearest()

virtual float cv::ml::KNearest::findNearest ( InputArray  samples,
int  k,
OutputArray  results,
OutputArray  neighborResponses = noArray(),
OutputArray  dist = noArray() 
) const
纯虚
Python
cv.ml.KNearest.findNearest(samples, k[, results[, neighborResponses[, dist]]]) -> retval, results, neighborResponses, dist

查找输入向量的邻居并预测响应。

参数
samples按行存储的输入样本。它是大小为 <number_of_samples> * k 的单精度浮点矩阵。
k使用的最近邻的数量。应大于 1。
results包含每个输入样本预测结果(回归或分类)的向量。它是一个包含 <number_of_samples> 个元素的单精度浮点向量。
neighborResponses对应邻居的可选输出值。它是一个大小为 <number_of_samples> * k 的单精度浮点矩阵。
dist输入向量到对应邻居的可选输出距离。它是一个大小为 <number_of_samples> * k 的单精度浮点矩阵。

对于每个输入向量(矩阵样本的一行),该方法找到 k 个最近邻。在回归情况下,预测结果是特定向量邻居响应的平均值。在分类情况下,类别由投票决定。

对于每个输入向量,邻居按它们到向量的距离排序。

在 C++ 接口情况下,您可以使用指向空矩阵的输出指针,函数会自行分配内存。

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

该函数使用 TBB 库并行化。

以下是此函数的调用图

◆ getAlgorithmType()

virtual int cv::ml::KNearest::getAlgorithmType ( ) const
纯虚
Python
cv.ml.KNearest.getAlgorithmType() -> retval

算法类型,是 KNearest::Types 中的其中一个。

另请参阅
setAlgorithmType

◆ getDefaultK()

virtual int cv::ml::KNearest::getDefaultK ( ) const
纯虚
Python
cv.ml.KNearest.getDefaultK() -> retval

在 predict 方法中使用的默认邻居数。

另请参阅
setDefaultK

◆ getEmax()

virtual int cv::ml::KNearest::getEmax ( ) const
纯虚
Python
cv.ml.KNearest.getEmax() -> retval

KDTree 实现的参数。

另请参阅
setEmax

◆ getIsClassifier()

virtual bool cv::ml::KNearest::getIsClassifier ( ) const
纯虚
Python
cv.ml.KNearest.getIsClassifier() -> retval

是否应该训练分类模型或回归模型。

另请参阅
setIsClassifier

◆ load()

static Ptr< KNearest > cv::ml::KNearest::load ( const String filepath)
static
Python
cv.ml.KNearest.load(filepath) -> retval
cv.ml.KNearest_load(filepath) -> retval

从文件加载并创建序列化 knearest。

使用 KNearest::save 将一个 KNearest 序列化并存储到磁盘。通过使用该函数并传入文件路径,可以再次从该文件中加载该 KNearest

参数
filepath序列化 KNearest 的路径

◆ setAlgorithmType()

virtual void cv::ml::KNearest::setAlgorithmType ( int  val)
纯虚
Python
cv.ml.KNearest.setAlgorithmType(val) ->

另请参阅
getAlgorithmType

◆ setDefaultK()

virtual void cv::ml::KNearest::setDefaultK ( int  val)
纯虚
Python
cv.ml.KNearest.setDefaultK(val) ->

另请参阅
getDefaultK

◆ setEmax()

virtual void cv::ml::KNearest::setEmax ( int  val)
纯虚
Python
cv.ml.KNearest.setEmax(val) ->

另请参阅
getEmax

◆ setIsClassifier()

virtual void cv::ml::KNearest::setIsClassifier ( bool  val)
纯虚
Python
cv.ml.KNearest.setIsClassifier(val) ->

另请参阅
getIsClassifier

该类的文档是根据以下文件生成的