HOG:
- 默认参数 win_Size (w=80,h=128)
- 把图像resize到这个尺寸
resize(src,dst,Size(width,height));
cell_Size (8,8)
宽度上有80/8=10个cell,高度上有128/8=16个,总共 10×16=160 个cellsblock_Size(16,16), block_stride (8,8)
相当于 block_nx=cell_nx-1=9,block_ny=cell_ny-1=15,总共 9×15=135 个blocks,一个block有4个cellnum_bin 9
这个是把梯度方向分为9个区间
for kx in range(9): # block_nx
for ky in range(15): #block_ny
for cell in range(4):
cellx=kx;
celly=ky;
if(cell==1) cellx++;
if(cell==2) celly++;
if(cell==3) cellx++;celly++
for bin in range(9)
Data[celly][cellx][bin]+=Grad_mag[ind];
ind++;
// end bin
counter[cellx][celly]++;
// end cell
//end ky
//end kx
ind总个数为 blockx*blocky*cell_perblock*num_bin=9*15*4*9=4860
不同的block有重叠的cell,这些cell重复计算了bin
for cellx in range(10):
for celly in range(16):
for bin in range(9):
Data[celly][cellx][bin]/=counter[cellx][celly];