icvEvalCARTHaarClassifier

原创 2015年07月07日 11:09:05


/*
 *icvEvalCARTHaarClassifier
 *作用:通过计算haar特征值,来分配非叶子节点直到出现叶子节点,最后返回输出值val。
 */

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。
}


内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:icvEvalCARTHaarClassifier
举报原因:
原因补充:

(最多只允许输入30个字)