OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::ml::KNearest 类参考抽象

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

#include <opencv2/ml.hpp>

cv::ml::KNearest 的协作图

公共类型

枚举  类型 {
  BRUTE_FORCE =1 ,
  KDTREE =2
}
 KNearest 算法的实现。更多...
 
- 从 cv::ml::StatModel 继承的公共类型
枚举  标志 {
  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
 如果 算法 为空(例如在最开始或读取失败后),则返回 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 继承的公共成员函数
 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 结果,
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。
结果包含每个输入样本的预测结果(回归或分类)的向量。它是一个单精度浮点向量,包含 `<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::saveKNearest 序列化并存储到磁盘。通过使用文件路径调用此函数,可以再次从该文件加载 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

此类的文档由以下文件生成