void FerNNClassifier::trainNN(const vector<cv::Mat>& nn_examples){
float conf,dummy;
vector<int> y(nn_examples.size(),0);
y[0]=1; //nn_data样本集中只有一个pEx,位于nn_data[0]
vector<int> isin;
for (int i=0;i<nn_examples.size();i++){
NNConf(nn_examples[i],isin,conf,dummy); //对每一个样本,通过计算NCC系数求样本与在线模型相似度conf
if (y[i]==1 && conf<=thr_nn){ //标签为正样本,但相关度低于阈值,将其加入正样本库
if (isin[1]<0){
pEx = vector<Mat>(1,nn_examples[i]); continue;
}
pEx.push_back(nn_examples[i]);
}
if(y[i]==0 && conf>0.5) //标签为负样本,但相关度却大于0.5,将其加入负样本库 nEx.push_back(nn_examples[i]);
}
acum++;
printf("%d. Trained NN examples: %d positive %d negative\n",acum,(int)pEx.size(),(int)nEx.size());
}