OpenCV 4.11.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
 如果 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 >
静态 Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 创建并使用默认参数训练模型。
 
- 从 cv::Algorithm 继承的静态公有成员函数
template<typename _Tp >
静态 Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
静态 Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
静态 Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承的成员

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

详细描述

该类实现 K-近邻模型。

另请参见
K-近邻

成员枚举文档

◆ 类型

KNearest 算法的实现。

枚举器
BRUTE_FORCE 
KDTREE 

成员函数文档

◆ create()

静态 Ptr< KNearest > cv::ml::KNearest::create ( )
静态
Python
cv.ml.KNearest.create() -> 返回值
cv.ml.KNearest_create() -> 返回值

创建空模型。

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

◆ findNearest()

虚函数 float cv::ml::KNearest::findNearest ( InputArray 样本,
int k,
OutputArray 结果,
OutputArray neighborResponses = noArray(),
OutputArray dist = noArray() ) const
纯虚函数
Python
cv.ml.KNearest.findNearest(samples, k[, results[, neighborResponses[, dist]]]) -> 返回值, results, neighborResponses, dist

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

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

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

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

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

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

该函数使用 TBB 库并行化。

此函数的调用图如下所示

◆ getAlgorithmType()

虚函数 int cv::ml::KNearest::getAlgorithmType ( ) const
纯虚函数
Python
cv.ml.KNearest.getAlgorithmType() -> 返回值

算法类型,KNearest::Types 之一。

另请参见
setAlgorithmType

◆ getDefaultK()

虚函数 int cv::ml::KNearest::getDefaultK ( ) const
纯虚函数
Python
cv.ml.KNearest.getDefaultK() -> 返回值

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

另请参见
setDefaultK

◆ getEmax()

虚函数 int cv::ml::KNearest::getEmax ( ) const
纯虚函数
Python
cv.ml.KNearest.getEmax() -> 返回值

KDTree 实现的参数。

另请参见
setEmax

◆ getIsClassifier()

虚函数 bool cv::ml::KNearest::getIsClassifier ( ) const
纯虚函数
Python
cv.ml.KNearest.getIsClassifier() -> 返回值

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

另请参见
setIsClassifier

◆ load()

静态 Ptr< KNearest > cv::ml::KNearest::load ( const String & 文件路径)
静态
Python
cv.ml.KNearest.load(文件路径) -> 返回值
cv.ml.KNearest_load(文件路径) -> 返回值

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

使用 KNearest::saveKNearest 序列化并存储到磁盘。通过使用文件的路径调用此函数,再次从该文件加载 KNearest

参数
文件路径序列化 KNearest 的路径

◆ setAlgorithmType()

虚函数 void cv::ml::KNearest::setAlgorithmType ( int )
纯虚函数
Python
cv.ml.KNearest.setAlgorithmType() ->

另请参见
getAlgorithmType

◆ setDefaultK()

虚函数 void cv::ml::KNearest::setDefaultK ( int )
纯虚函数
Python
cv.ml.KNearest.setDefaultK() ->

另请参见
getDefaultK

◆ setEmax()

虚函数 void cv::ml::KNearest::setEmax ( int )
纯虚函数
Python
cv.ml.KNearest.setEmax() ->

另请参见
getEmax

◆ setIsClassifier()

虚函数 void cv::ml::KNearest::setIsClassifier ( 布尔值 )
纯虚函数
Python
cv.ml.KNearest.setIsClassifier() ->

另请参见
getIsClassifier

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