Update to 2.0.0 tree from current Fremantle build
[opencv] / apps / haartraining / src / cvclassifier.h
diff --git a/apps/haartraining/src/cvclassifier.h b/apps/haartraining/src/cvclassifier.h
deleted file mode 100644 (file)
index 5fd03a7..0000000
+++ /dev/null
@@ -1,727 +0,0 @@
-/*M///////////////////////////////////////////////////////////////////////////////////////
-//
-//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
-//
-//  By downloading, copying, installing or using the software you agree to this license.
-//  If you do not agree to this license, do not download, install,
-//  copy or use the software.
-//
-//
-//                        Intel License Agreement
-//                For Open Source Computer Vision Library
-//
-// Copyright (C) 2000, Intel Corporation, all rights reserved.
-// Third party copyrights are property of their respective owners.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-//   * Redistribution's of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//
-//   * Redistribution's in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//
-//   * The name of Intel Corporation may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-//
-// This software is provided by the copyright holders and contributors "as is" and
-// any express or implied warranties, including, but not limited to, the implied
-// warranties of merchantability and fitness for a particular purpose are disclaimed.
-// In no event shall the Intel Corporation or contributors be liable for any direct,
-// indirect, incidental, special, exemplary, or consequential damages
-// (including, but not limited to, procurement of substitute goods or services;
-// loss of use, data, or profits; or business interruption) however caused
-// and on any theory of liability, whether in contract, strict liability,
-// or tort (including negligence or otherwise) arising in any way out of
-// the use of this software, even if advised of the possibility of such damage.
-//
-//M*/
-
-/*
- * File cvclassifier.h
- *
- * Classifier types
- */
-
-#ifndef _CVCLASSIFIER_H_
-#define _CVCLASSIFIER_H_
-
-#include <cxcore.h>
-#include <math.h>
-
-#define CV_BOOST_API
-
-/* Convert matrix to vector */
-#define CV_MAT2VEC( mat, vdata, vstep, num )       \
-    assert( (mat).rows == 1 || (mat).cols == 1 );  \
-    (vdata) = ((mat).data.ptr);                    \
-    if( (mat).rows == 1 )                          \
-    {                                              \
-        (vstep) = CV_ELEM_SIZE( (mat).type );      \
-        (num) = (mat).cols;                        \
-    }                                              \
-    else                                           \
-    {                                              \
-        (vstep) = (mat).step;                      \
-        (num) = (mat).rows;                        \
-    }
-
-/* Set up <sample> matrix header to be <num> sample of <trainData> samples matrix */
-#define CV_GET_SAMPLE( trainData, tdflags, num, sample )                                 \
-if( CV_IS_ROW_SAMPLE( tdflags ) )                                                        \
-{                                                                                        \
-    cvInitMatHeader( &(sample), 1, (trainData).cols,                                     \
-                     CV_MAT_TYPE( (trainData).type ),                                    \
-                     ((trainData).data.ptr + (num) * (trainData).step),                  \
-                     (trainData).step );                                                 \
-}                                                                                        \
-else                                                                                     \
-{                                                                                        \
-    cvInitMatHeader( &(sample), (trainData).rows, 1,                                     \
-                     CV_MAT_TYPE( (trainData).type ),                                    \
-                     ((trainData).data.ptr + (num) * CV_ELEM_SIZE( (trainData).type )),  \
-                     (trainData).step );                                                 \
-}
-
-#define CV_GET_SAMPLE_STEP( trainData, tdflags, sstep )                                  \
-(sstep) = ( ( CV_IS_ROW_SAMPLE( tdflags ) )                                              \
-           ? (trainData).step : CV_ELEM_SIZE( (trainData).type ) );
-
-
-#define CV_LOGRATIO_THRESHOLD 0.00001F
-
-/* log( val / (1 - val ) ) */
-CV_INLINE float cvLogRatio( float val );
-
-CV_INLINE float cvLogRatio( float val )
-{
-    float tval;
-
-    tval = MAX(CV_LOGRATIO_THRESHOLD, MIN( 1.0F - CV_LOGRATIO_THRESHOLD, (val) ));
-    return logf( tval / (1.0F - tval) );
-}
-
-
-/* flags values for classifier consturctor flags parameter */
-
-/* each trainData matrix column is a sample */
-#define CV_COL_SAMPLE 0
-
-/* each trainData matrix row is a sample */
-#define CV_ROW_SAMPLE 1
-
-#define CV_IS_ROW_SAMPLE( flags ) ( ( flags ) & CV_ROW_SAMPLE )
-
-/* Classifier supports tune function */
-#define CV_TUNABLE    (1 << 1)
-
-#define CV_IS_TUNABLE( flags ) ( (flags) & CV_TUNABLE )
-
-
-/* classifier fields common to all classifiers */
-#define CV_CLASSIFIER_FIELDS()                                                           \
-    int flags;                                                                           \
-    float(*eval)( struct CvClassifier*, CvMat* );                                        \
-    void (*tune)( struct CvClassifier*, CvMat*, int flags, CvMat*, CvMat*, CvMat*,       \
-                  CvMat*, CvMat* );                                                      \
-    int  (*save)( struct CvClassifier*, const char* file_name );                         \
-    void (*release)( struct CvClassifier** );
-
-typedef struct CvClassifier
-{
-    CV_CLASSIFIER_FIELDS()
-} CvClassifier;
-
-#define CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-typedef struct CvClassifierTrainParams
-{
-    CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-} CvClassifierTrainParams;
-
-
-/*
- Common classifier constructor:
- CvClassifier* cvCreateMyClassifier( CvMat* trainData,
-                     int flags,
-                     CvMat* trainClasses,
-                     CvMat* typeMask,
-                      CvMat* missedMeasurementsMask CV_DEFAULT(0),
-                      CvCompIdx* compIdx CV_DEFAULT(0),
-                      CvMat* sampleIdx CV_DEFAULT(0),
-                      CvMat* weights CV_DEFAULT(0),
-                      CvClassifierTrainParams* trainParams CV_DEFAULT(0)
-                    )
- */
-
-typedef CvClassifier* (*CvClassifierConstructor)( CvMat*, int, CvMat*, CvMat*, CvMat*,
-                                                  CvMat*, CvMat*, CvMat*,
-                                                  CvClassifierTrainParams* );
-
-typedef enum CvStumpType
-{
-    CV_CLASSIFICATION       = 0,
-    CV_CLASSIFICATION_CLASS = 1,
-    CV_REGRESSION           = 2
-} CvStumpType;
-
-typedef enum CvStumpError
-{
-    CV_MISCLASSIFICATION = 0,
-    CV_GINI              = 1,
-    CV_ENTROPY           = 2,
-    CV_SQUARE            = 3
-} CvStumpError;
-
-
-typedef struct CvStumpTrainParams
-{
-    CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-    CvStumpType  type;
-    CvStumpError error;
-} CvStumpTrainParams;
-
-typedef struct CvMTStumpTrainParams
-{
-    CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-    CvStumpType  type;
-    CvStumpError error;
-    int portion; /* number of components calculated in each thread */
-    int numcomp; /* total number of components */
-    
-    /* callback which fills <mat> with components [first, first+num[ */
-    void (*getTrainData)( CvMat* mat, CvMat* sampleIdx, CvMat* compIdx,
-                          int first, int num, void* userdata );
-    CvMat* sortedIdx; /* presorted samples indices */
-    void* userdata; /* passed to callback */
-} CvMTStumpTrainParams;
-
-typedef struct CvStumpClassifier
-{
-    CV_CLASSIFIER_FIELDS()
-    int compidx;
-    
-    float lerror; /* impurity of the right node */
-    float rerror; /* impurity of the left  node */
-    
-    float threshold;
-    float left;
-    float right;
-} CvStumpClassifier;
-
-typedef struct CvCARTTrainParams
-{
-    CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-    /* desired number of internal nodes */
-    int count;
-    CvClassifierTrainParams* stumpTrainParams;
-    CvClassifierConstructor  stumpConstructor;
-    
-    /*
-     * Split sample indices <idx>
-     * on the "left" indices <left> and "right" indices <right>
-     * according to samples components <compidx> values and <threshold>.
-     *
-     * NOTE: Matrices <left> and <right> must be allocated using cvCreateMat function
-     *   since they are freed using cvReleaseMat function
-     *
-     * If it is NULL then the default implementation which evaluates training
-     * samples from <trainData> passed to classifier constructor is used
-     */
-    void (*splitIdx)( int compidx, float threshold,
-                      CvMat* idx, CvMat** left, CvMat** right,
-                      void* userdata );
-    void* userdata;
-} CvCARTTrainParams;
-
-typedef struct CvCARTClassifier
-{
-    CV_CLASSIFIER_FIELDS()
-    /* number of internal nodes */
-    int count;
-
-    /* internal nodes (each array of <count> elements) */
-    int* compidx;
-    float* threshold;
-    int* left;
-    int* right;
-
-    /* leaves (array of <count>+1 elements) */
-    float* val;
-} CvCARTClassifier;
-
-CV_BOOST_API
-void cvGetSortedIndices( CvMat* val, CvMat* idx, int sortcols CV_DEFAULT( 0 ) );
-
-CV_BOOST_API
-void cvReleaseStumpClassifier( CvClassifier** classifier );
-
-CV_BOOST_API
-float cvEvalStumpClassifier( CvClassifier* classifier, CvMat* sample );
-
-CV_BOOST_API
-CvClassifier* cvCreateStumpClassifier( CvMat* trainData,
-                                       int flags,
-                                       CvMat* trainClasses,
-                                       CvMat* typeMask,
-                                       CvMat* missedMeasurementsMask CV_DEFAULT(0),
-                                       CvMat* compIdx CV_DEFAULT(0),
-                                       CvMat* sampleIdx CV_DEFAULT(0),
-                                       CvMat* weights CV_DEFAULT(0),
-                                       CvClassifierTrainParams* trainParams CV_DEFAULT(0) );
-
-/*
- * cvCreateMTStumpClassifier
- *
- * Multithreaded stump classifier constructor
- * Includes huge train data support through callback function
- */
-CV_BOOST_API
-CvClassifier* cvCreateMTStumpClassifier( CvMat* trainData,
-                                         int flags,
-                                         CvMat* trainClasses,
-                                         CvMat* typeMask,
-                                         CvMat* missedMeasurementsMask,
-                                         CvMat* compIdx,
-                                         CvMat* sampleIdx,
-                                         CvMat* weights,
-                                         CvClassifierTrainParams* trainParams );
-
-/*
- * cvCreateCARTClassifier
- *
- * CART classifier constructor
- */
-CV_BOOST_API
-CvClassifier* cvCreateCARTClassifier( CvMat* trainData,
-                                      int flags,
-                                      CvMat* trainClasses,
-                                      CvMat* typeMask,
-                                      CvMat* missedMeasurementsMask,
-                                      CvMat* compIdx,
-                                      CvMat* sampleIdx,
-                                      CvMat* weights,
-                                      CvClassifierTrainParams* trainParams );
-
-CV_BOOST_API
-void cvReleaseCARTClassifier( CvClassifier** classifier );
-
-CV_BOOST_API
-float cvEvalCARTClassifier( CvClassifier* classifier, CvMat* sample );
-
-/****************************************************************************************\
-*                                        Boosting                                        *
-\****************************************************************************************/
-
-/*
- * CvBoostType 
- *
- * The CvBoostType enumeration specifies the boosting type.
- *
- * Remarks
- *   Four different boosting variants for 2 class classification problems are supported:
- *   Discrete AdaBoost, Real AdaBoost, LogitBoost and Gentle AdaBoost. 
- *   The L2 (2 class classification problems) and LK (K class classification problems)
- *   algorithms are close to LogitBoost but more numerically stable than last one.
- *   For regression three different loss functions are supported:
- *   Least square, least absolute deviation and huber loss.
- */
-typedef enum CvBoostType
-{
-    CV_DABCLASS = 0, /* 2 class Discrete AdaBoost           */
-    CV_RABCLASS = 1, /* 2 class Real AdaBoost               */
-    CV_LBCLASS  = 2, /* 2 class LogitBoost                  */
-    CV_GABCLASS = 3, /* 2 class Gentle AdaBoost             */
-    CV_L2CLASS  = 4, /* classification (2 class problem)    */
-    CV_LKCLASS  = 5, /* classification (K class problem)    */
-    CV_LSREG    = 6, /* least squares regression            */
-    CV_LADREG   = 7, /* least absolute deviation regression */
-    CV_MREG     = 8, /* M-regression (Huber loss)           */
-} CvBoostType;
-
-/****************************************************************************************\
-*                             Iterative training functions                               *
-\****************************************************************************************/
-
-/*
- * CvBoostTrainer
- *
- * The CvBoostTrainer structure represents internal boosting trainer.
- */
-typedef struct CvBoostTrainer CvBoostTrainer;
-
-/*
- * cvBoostStartTraining
- *
- * The cvBoostStartTraining function starts training process and calculates
- * response values and weights for the first weak classifier training.
- *
- * Parameters
- *   trainClasses
- *     Vector of classes of training samples classes. Each element must be 0 or 1 and
- *     of type CV_32FC1.
- *   weakTrainVals
- *     Vector of response values for the first trained weak classifier.
- *     Must be of type CV_32FC1.
- *   weights
- *     Weight vector of training samples for the first trained weak classifier.
- *     Must be of type CV_32FC1.
- *   type
- *     Boosting type. CV_DABCLASS, CV_RABCLASS, CV_LBCLASS, CV_GABCLASS
- *     types are supported.
- *
- * Return Values
- *   The return value is a pointer to internal trainer structure which is used
- *   to perform next training iterations.
- *
- * Remarks
- *   weakTrainVals and weights must be allocated before calling the function
- *   and of the same size as trainingClasses. Usually weights should be initialized
- *   with 1.0 value.
- *   The function calculates response values and weights for the first weak
- *   classifier training and stores them into weakTrainVals and weights
- *   respectively.
- *   Note, the training of the weak classifier using weakTrainVals, weight,
- *   trainingData is outside of this function.
- */
-CV_BOOST_API
-CvBoostTrainer* cvBoostStartTraining( CvMat* trainClasses,
-                                      CvMat* weakTrainVals,
-                                      CvMat* weights,
-                                      CvMat* sampleIdx,
-                                      CvBoostType type );
-/*
- * cvBoostNextWeakClassifier
- *
- * The cvBoostNextWeakClassifier function performs next training
- * iteration and caluclates response values and weights for the next weak
- * classifier training.
- *
- * Parameters
- *   weakEvalVals
- *     Vector of values obtained by evaluation of each sample with
- *     the last trained weak classifier (iteration i). Must be of CV_32FC1 type.
- *   trainClasses
- *     Vector of classes of training samples. Each element must be 0 or 1,
- *     and of type CV_32FC1.
- *   weakTrainVals
- *     Vector of response values for the next weak classifier training
- *     (iteration i+1). Must be of type CV_32FC1.
- *   weights
- *     Weight vector of training samples for the next weak classifier training
- *     (iteration i+1). Must be of type CV_32FC1.
- *   trainer
- *     A pointer to internal trainer returned by the cvBoostStartTraining
- *     function call.
- *
- * Return Values
- *   The return value is the coefficient for the last trained weak classifier.
- *
- * Remarks
- *   weakTrainVals and weights must be exactly the same vectors as used in
- *   the cvBoostStartTraining function call and should not be modified.
- *   The function calculates response values and weights for the next weak
- *   classifier training and stores them into weakTrainVals and weights
- *   respectively.
- *   Note, the training of the weak classifier of iteration i+1 using
- *   weakTrainVals, weight, trainingData is outside of this function.
- */
-CV_BOOST_API
-float cvBoostNextWeakClassifier( CvMat* weakEvalVals,
-                                 CvMat* trainClasses,
-                                 CvMat* weakTrainVals,
-                                 CvMat* weights,
-                                 CvBoostTrainer* trainer );
-
-/*
- * cvBoostEndTraining
- *
- * The cvBoostEndTraining function finishes training process and releases
- * internally allocated memory.
- *
- * Parameters
- *   trainer
- *     A pointer to a pointer to internal trainer returned by the cvBoostStartTraining
- *     function call.
- */
-CV_BOOST_API
-void cvBoostEndTraining( CvBoostTrainer** trainer );
-
-/****************************************************************************************\
-*                                    Boosted tree models                                 *
-\****************************************************************************************/
-
-/*
- * CvBtClassifier
- *
- * The CvBtClassifier structure represents boosted tree model.
- *
- * Members
- *   flags
- *     Flags. If CV_IS_TUNABLE( flags ) != 0 then the model supports tuning.
- *   eval
- *     Evaluation function. Returns sample predicted class (0, 1, etc.)
- *     for classification or predicted value for regression.
- *   tune
- *     Tune function. If the model supports tuning then tune call performs
- *     one more boosting iteration if passed to the function flags parameter
- *     is CV_TUNABLE otherwise releases internally allocated for tuning memory
- *     and makes the model untunable.
- *     NOTE: Since tuning uses the pointers to parameters,
- *     passed to the cvCreateBtClassifier function, they should not be modified
- *     or released between tune calls.
- *   save
- *     This function stores the model into given file.
- *   release
- *     This function releases the model.
- *   type
- *     Boosted tree model type.
- *   numclasses
- *     Number of classes for CV_LKCLASS type or 1 for all other types.
- *   numiter
- *     Number of iterations. Number of weak classifiers is equal to number
- *     of iterations for all types except CV_LKCLASS. For CV_LKCLASS type
- *     number of weak classifiers is (numiter * numclasses).
- *   numfeatures
- *     Number of features in sample.
- *   trees
- *     Stores weak classifiers when the model does not support tuning.
- *   seq
- *     Stores weak classifiers when the model supports tuning.
- *   trainer
- *     Pointer to internal tuning parameters if the model supports tuning.
- */
-typedef struct CvBtClassifier
-{
-    CV_CLASSIFIER_FIELDS()
-    
-    CvBoostType type;
-    int numclasses;
-    int numiter;
-    int numfeatures;
-    union
-    {
-        CvCARTClassifier** trees;
-        CvSeq* seq;
-    };
-    void* trainer;
-} CvBtClassifier;
-
-/*
- * CvBtClassifierTrainParams
- *
- * The CvBtClassifierTrainParams structure stores training parameters for
- * boosted tree model.
- *
- * Members
- *   type
- *     Boosted tree model type.
- *   numiter
- *     Desired number of iterations.
- *   param
- *     Parameter   Model Type    Parameter Meaning
- *     param[0]    Any           Shrinkage factor
- *     param[1]    CV_MREG       alpha. (1-alpha) determines "break-down" point of
- *                               the training procedure, i.e. the fraction of samples
- *                               that can be arbitrary modified without serious
- *                               degrading the quality of the result.
- *                 CV_DABCLASS,  Weight trimming factor.
- *                 CV_RABCLASS,
- *                 CV_LBCLASS,
- *                 CV_GABCLASS,
- *                 CV_L2CLASS,
- *                 CV_LKCLASS
- *   numsplits
- *     Desired number of splits in each tree.
- */
-typedef struct CvBtClassifierTrainParams
-{
-    CV_CLASSIFIER_TRAIN_PARAM_FIELDS()
-
-    CvBoostType type;
-    int numiter;
-    float param[2];
-    int numsplits;
-} CvBtClassifierTrainParams;
-
-/*
- * cvCreateBtClassifier
- *
- * The cvCreateBtClassifier function creates boosted tree model.
- *
- * Parameters
- *   trainData
- *     Matrix of feature values. Must have CV_32FC1 type.
- *   flags
- *     Determines how samples are stored in trainData.
- *     One of CV_ROW_SAMPLE or CV_COL_SAMPLE.
- *     Optionally may be combined with CV_TUNABLE to make tunable model.
- *   trainClasses
- *     Vector of responses for regression or classes (0, 1, 2, etc.) for classification.
- *   typeMask,
- *   missedMeasurementsMask,
- *   compIdx
- *     Not supported. Must be NULL.
- *   sampleIdx
- *     Indices of samples used in training. If NULL then all samples are used.
- *     For CV_DABCLASS, CV_RABCLASS, CV_LBCLASS and CV_GABCLASS must be NULL.
- *   weights
- *     Not supported. Must be NULL.
- *   trainParams
- *     A pointer to CvBtClassifierTrainParams structure. Training parameters.
- *     See CvBtClassifierTrainParams description for details.
- *
- * Return Values
- *   The return value is a pointer to created boosted tree model of type CvBtClassifier.
- *
- * Remarks
- *     The function performs trainParams->numiter training iterations.
- *     If CV_TUNABLE flag is specified then created model supports tuning.
- *     In this case additional training iterations may be performed by
- *     tune function call.
- */
-CV_BOOST_API
-CvClassifier* cvCreateBtClassifier( CvMat* trainData,
-                                    int flags,
-                                    CvMat* trainClasses,
-                                    CvMat* typeMask,
-                                    CvMat* missedMeasurementsMask,
-                                    CvMat* compIdx,
-                                    CvMat* sampleIdx,
-                                    CvMat* weights,
-                                    CvClassifierTrainParams* trainParams );
-
-/*
- * cvCreateBtClassifierFromFile
- *
- * The cvCreateBtClassifierFromFile function restores previously saved
- * boosted tree model from file.
- *
- * Parameters
- *   filename
- *     The name of the file with boosted tree model.
- *
- * Remarks
- *   The restored model does not support tuning.
- */
-CV_BOOST_API
-CvClassifier* cvCreateBtClassifierFromFile( const char* filename );
-
-/****************************************************************************************\
-*                                    Utility functions                                   *
-\****************************************************************************************/
-
-/*
- * cvTrimWeights
- *
- * The cvTrimWeights function performs weight trimming.
- *
- * Parameters
- *   weights
- *     Weights vector.
- *   idx
- *     Indices vector of weights that should be considered.
- *     If it is NULL then all weights are used.
- *   factor
- *     Weight trimming factor. Must be in [0, 1] range.
- *
- * Return Values
- *   The return value is a vector of indices. If all samples should be used then
- *   it is equal to idx. In other case the cvReleaseMat function should be called
- *   to release it.
- *
- * Remarks
- */
-CV_BOOST_API
-CvMat* cvTrimWeights( CvMat* weights, CvMat* idx, float factor );
-
-/*
- * cvReadTrainData
- *
- * The cvReadTrainData function reads feature values and responses from file.
- *
- * Parameters
- *   filename
- *     The name of the file to be read.
- *   flags
- *     One of CV_ROW_SAMPLE or CV_COL_SAMPLE. Determines how feature values
- *     will be stored.
- *   trainData
- *     A pointer to a pointer to created matrix with feature values.
- *     cvReleaseMat function should be used to destroy created matrix.
- *   trainClasses
- *     A pointer to a pointer to created matrix with response values.
- *     cvReleaseMat function should be used to destroy created matrix.
- *
- * Remarks
- *   File format:
- *   ============================================
- *   m n
- *   value_1_1 value_1_2 ... value_1_n response_1
- *   value_2_1 value_2_2 ... value_2_n response_2
- *   ...
- *   value_m_1 value_m_2 ... value_m_n response_m
- *   ============================================
- *   m
- *     Number of samples
- *   n
- *     Number of features in each sample
- *   value_i_j
- *     Value of j-th feature of i-th sample
- *   response_i
- *     Response value of i-th sample
- *     For classification problems responses represent classes (0, 1, etc.)
- *   All values and classes are integer or real numbers.
- */
-CV_BOOST_API
-void cvReadTrainData( const char* filename,
-                      int flags,
-                      CvMat** trainData,
-                      CvMat** trainClasses );
-
-
-/*
- * cvWriteTrainData
- *
- * The cvWriteTrainData function stores feature values and responses into file.
- *
- * Parameters
- *   filename
- *     The name of the file.
- *   flags
- *     One of CV_ROW_SAMPLE or CV_COL_SAMPLE. Determines how feature values
- *     are stored.
- *   trainData
- *     Feature values matrix.
- *   trainClasses
- *     Response values vector.
- *   sampleIdx
- *     Vector of idicies of the samples that should be stored. If it is NULL
- *     then all samples will be stored.
- *
- * Remarks
- *   See the cvReadTrainData function for file format description.
- */
-CV_BOOST_API
-void cvWriteTrainData( const char* filename,
-                       int flags,
-                       CvMat* trainData,
-                       CvMat* trainClasses,
-                       CvMat* sampleIdx );
-
-/*
- * cvRandShuffle
- *
- * The cvRandShuffle function perfroms random shuffling of given vector.
- *
- * Parameters
- *   vector
- *     Vector that should be shuffled.
- *     Must have CV_8UC1, CV_16SC1, CV_32SC1 or CV_32FC1 type.
- */
-CV_BOOST_API
-void cvRandShuffleVec( CvMat* vector );
-
-#endif /* _CVCLASSIFIER_H_ */