caffe图像格式: batchsize channels height width
在内存中,是按照先存储width,在存储height,再存储channels的顺序,也就是一个坐标是(n,k,h,w)的像素点,在内存中的idx是
((n * channels + k) * height + h) * width + w
而matlab读取图像之后是按列存储,也就是看起来图像的顺序是height, width, channels,但是其实在内存中是按照channels width height来存储的。也就是说,需要调换height和width的顺序:
Img = permute(Img, [2,1,3]);%flip width and height
而matlab也是按照RGB的顺序存储的,所以如果是BGR的话,需要
Img = Img(:,:,[3,2,1]);%permute channels from RGB to BGR
caffe在生成lmdb的时候,如果调用的自带的convert程序,一般是用的BGR存储的,切记切记!