opencv目录及机器学习基础类

来源:互联网 发布:淘宝托福视频 编辑:程序博客网 时间:2024/04/29 19:34

没想到,PCA竟然是位于opencv的core路径下面,与abs,add这样的功能函数并列放置。

1. Basic Structures

2.Basic C Structures and Operations

3.Dynamic Structures

4.core. The Core Functionality

Operations on Arrays

  • PCA  Performs Principal Component Analysis of the supplied dataset.
  • PCA::PCA
  • PCA::operator ()
  • PCA::project
  • PCA::backProject

5. Drawing Functions

6.XML/YAML Persistence

7. XML/YAML Persistence (C API)

8. Clustering

kmeans

partition

9.Utility and System Functions and Macros

10.OpenGL interoperability


简介:通用类和函数

机器学习库(MLL)是一些用于分类、回归和数据聚类的类和函数。

大部分分类和回归算法是用C++类来实现。尽管这些算法有一些不同的特性(像处理missing measurements的能力,或者categorical input variables等),这些类之间有一些相同之处。这些相同之处在类 CvStatModel 中被定义,其他 ML 类都是从这个类中继承。

CvStatModel

ML库中的统计模型基类。

class CvStatModel{public:    /* CvStatModel(); */    /* CvStatModel( const CvMat* train_data ... ); */    virtual ~CvStatModel();    virtual void clear()=0;    /* virtual bool train( const CvMat* train_data, [int tflag,] ..., const CvMat* responses, ...,    [const CvMat* var_idx,] ..., [const CvMat* sample_idx,] ...    [const CvMat* var_type,] ..., [const CvMat* missing_mask,] <misc_training_alg_params> ... )=0;     */    /* virtual float predict( const CvMat* sample ... ) const=0; */    virtual void save( const char* filename, const char* name=0 )=0;    virtual void load( const char* filename, const char* name=0 )=0;    virtual void write( CvFileStorage* storage, const char* name )=0;    virtual void read( CvFileStorage* storage, CvFileNode* node )=0;};

CvSVM

支持矢量机

class CvSVM : public CvStatModel //继承自基类CvStatModel{public:    // SVM type    enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };//SVC是SVM分类器,SVR是SVM回归    // SVM kernel type    enum { LINEAR=0, POLY=1, RBF=2, SIGMOID=3 }; //提供四种核函数,分别是线性,多项式,径向基,sigmoid型函数。    CvSVM();    virtual ~CvSVM();    CvSVM( const CvMat* _train_data, const CvMat* _responses,           const CvMat* _var_idx=0, const CvMat* _sample_idx=0,           CvSVMParams _params=CvSVMParams() );    virtual bool train( const CvMat* _train_data, const CvMat* _responses,                        const CvMat* _var_idx=0, const CvMat* _sample_idx=0,                        CvSVMParams _params=CvSVMParams() );    virtual float predict( const CvMat* _sample ) const;    virtual int get_support_vector_count() const;    virtual const float* get_support_vector(int i) const;    virtual void clear();    virtual void save( const char* filename, const char* name=0 );    virtual void load( const char* filename, const char* name=0 );    virtual void write( CvFileStorage* storage, const char* name );    virtual void read( CvFileStorage* storage, CvFileNode* node );    int get_var_count() const { return var_idx ? var_idx->cols : var_all; }protected:    ...};
[编辑]

CvSVMParams

SVM训练参数struct

struct CvSVMParams{    CvSVMParams();    CvSVMParams( int _svm_type, int _kernel_type,                 double _degree, double _gamma, double _coef0,                 double _C, double _nu, double _p,                 CvMat* _class_weights, CvTermCriteria _term_crit );    int         svm_type;    int         kernel_type;    double      degree; // for poly    double      gamma;  // for poly/rbf/sigmoid    double      coef0;  // for poly/sigmoid    double      C;  // for CV_SVM_C_SVC, CV_SVM_EPS_SVR and CV_SVM_NU_SVR    double      nu; // for CV_SVM_NU_SVC, CV_SVM_ONE_CLASS, and CV_SVM_NU_SVR    double      p; // for CV_SVM_EPS_SVR    CvMat*      class_weights; // for CV_SVM_C_SVC    CvTermCriteria term_crit; // termination criteria};


0 0
原创粉丝点击