hog.detectMultiScale过程学习

1、弄清楚scale的过程

double scale = 1.;
    int levels = 0;

    vector<double> levelScale;
    for( levels = 0; levels < nlevels; levels++ )
    {
        levelScale.push_back(scale);
        if( cvRound(img.cols/scale) < winSize.width ||
            cvRound(img.rows/scale) < winSize.height ||
            scale0 <= 1 )
            break;
        scale *= scale0;
    }

由代码可以看出,hog会根据用户传递进来的scale0这个缩放参数,得到1到多个缩放级别,保存在levelScale这个vector里。计算的原理是:
第一个缩放参数固定等于1,
下一个缩放参数在上一个缩放参数的基础上乘于scale0,
直到原图像的宽或高除于这个最后的缩放参数的值,比扫描窗口小的时候,就停止。
如果用户指定的scale0<=1,就只有一级缩放参数:1,也就是不进行任何缩放,就将原图像进行处理。

从上面的scale的就算过程得到的缩放图片的过程可以由这张图表示:
这里写图片描述

最底下的就是原图,然后逐层往上缩小。这个图所设定的scale0=2。

我们也可以知道,扫描窗口的大小,最终决定了可以缩小的最小的图片,也就是不能检测到比扫描窗口更小的图片。

训练的时候有一个扫描窗口,测试时也有一个扫描窗口,是否要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值