/* *icvEvalCARTHaarClassifier *作用:通过计算haar特征,来分配非叶子节点直到出现叶子节点 */ float icvEvalCARTHaarClassifier( CvIntHaarClassifier* classifier, //内部弱分类器 sum_type* sum, //积分图 sum_type* tilted, //旋转积分图 float normfactor ) //缩放因子 { int idx = 0; do { //通过计算快速haar特征,然后与弱分类器的(阈值*缩放因子)做比较 if( cvEvalFastHaarFeature( ((CvCARTHaarClassifier*) classifier)->fastfeature + idx, sum, tilted ) < (((CvCARTHaarClassifier*) classifier)->threshold[idx] * normfactor) ) { idx = ((CvCARTHaarClassifier*) classifier)->left[idx]; } else { idx = ((CvCARTHaarClassifier*) classifier)->right[idx]; } } while( idx > 0 );//当是非叶子节点时 return ((CvCARTHaarClassifier*) classifier)->val[-idx];//上面循环结束时最后一个是叶子节点(为负数),所以要用-idx。 }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/ding977921830/article/details/46785701