如何理解opencv中Mat格式的空间结构
空间nd数组与实际内存1d存放空间之间的对应关系参考了:https://oneapi-src.github.io/oneDNN/understanding_memory_formats.html
- 如果是nchw这种数据如同左图图所示,为了获得某个位置的值,有对应的内存1d位置公式value_1d = n*CHW + c*HW + h*W + w,这个公式本质上的含义是:对于nchw结构的nd数据在存放到1d内存中时,切换顺序正相反维whcn,也就是先沿w方向增加index,然后切换h,切换c,切换n。对应的1d存放数据如右图第一个NCHW结构的数据
- 如果是nhwc这种nd数组,其对应内存1d位置公式维value_1d = n*HCW + h*CW + c*W + w,相应的存放切换顺序就是反过来为cwhn,那么实际的内存中的存放数据入右下图的NHWC形式。