求padding:
void test_pad(int *input,int width,int height,int *&output, int pad ){ //single channel
int out_width=width+2*pad;
int out_height=height+2*pad;
if(!output)
output=new int[25];
for(int i=0;i<out_width;i++){
for(int j=0;j<out_height;j++){
if(i<pad || j<pad || i>=width+pad || j>=height+pad) //没有击中原来的矩阵上的点,填充0
output[i*out_width+out_height]=0;
else{ //击中后,映射到原来的矩阵的点
int ori_point_x=i-pad;
int ori_point_y=j-pad;
output[i*out_width+j]=input[ori_point_x*width+ori_point_y];
}
}
}
}
求im2col: