前者介绍了特征向量的提取,提取的特征可用于分类算法。分类算法的具体实施一般为训练和分类两部分。
一、OpenCV原函数:
1、训练函数
virtualbool train(const cv::Mat& trainData, int tflag,
const cv::Mat& responses,const cv::Mat& varIdx=cv::Mat(),
const cv::Mat& sampleIdx=cv::Mat(),const cv::Mat& varType=cv::Mat(),
const cv::Mat& missingDataMask=cv::Mat(),
CvRTParams params=CvRTParams() );
trainData 训练数据,特征向量集合
tflag trainData的排列结构
-- CV_ROW_SAMPLE 行排列
-- CV_COL_SAMPLE 列排列
responses 训练数据:对于分类问题,responses是类标签
varIdx 定义感兴趣的变量,变量中的某些,传null表示全部
sampleIdx 定义感兴趣的样本,样本中的某些,传null表示全部
varType 定义responses的类型
-- CV_VAR_CATEGORICAL分类标签
-- CV_VAR_ORDERED(CV_VAR_NUMERICAL)数值,用于回归问题
missingDataMask 定义缺失数据,和train_data一样大的8位Mat
params