Mat:一段连续的内存空间 + 描述信息头
Mat头信息
Mat头存储一些数据的描述信息,这些描述信息包括了:
- 宽度:cols
- 高度:rows
- 通道数:channels
- 数据类型:type
- 数据指针:data 指向真正的像素内存
图像的存储形式
Mat中的图像数据存储会占用一段连续的内存空间,假设现在有一个 5×5 的图像,那么它在内存中的存储形式如下:
第一行:B G R B G R B G R B G R B G R
第二行:B G R B G R B G R B G R B G R
第三行:B G R B G R B G R B G R B G R
第四行:B G R B G R B G R B G R B G R
第五行:B G R B G R B G R B G R B G R
每一个位置代表一个像素值,像素值处于 0 ~ 255 之间,此外需要注意的是 OpenCV 中的图像是以 BGR 的形式存储的,而不是 RGB,由于占用一段连续的内存空间,地址连续,此时使用指针直接访问最快 。