opencv中HOGDescriptor中计算特征的个数

1 创建HOG描述子

HOGDescriptor *descriptor=new HOGDescriptor(cvSize(40,80),//winSize

cvSize(10,20),//blockSize

cvSize(5,10),//blockStride

cvSize(5,5),//cellSize

9);//nbins

每个window中block的个数为(winSize - blockSize)/blockStride+ 1, 算得共有7*7=49 个block(注意有重叠)

每个block中cell的个数为blockSize/cellSize=2*4=8(无重叠)

每个cell中有9个bin

 因此每个window中bin的个数为49*8*9=3528

2 计算图片特征

vector<float>w;

descriptor->compute(cv::cvarrToMat(Img),// image

w, // hog feature

cvSize(10,20), //winStride

cvSize(0,0)); //paddingSize

 当设置padding为默认(0,0)时, 计算(imgSize - winSize) /windowStride +1 不一定为整数

在compute函数中可以看到:

padding.width =(int)alignSize(std::max(padding.width, 0), cacheStride.width);
padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
即padding的大小会自动适应stride的值.

img的尺寸是96*160的, 对应了6.6 * 5, 经函数调整后变成7 * 5 =35

 因此96*160的图片, 共有35*3528=123480个特征向量

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值