上一节,我们介绍了Mat遍历连续空间的方式,当然存数数据的空间也有可能是不连续的,本节就来简单介绍一下不连续空间的遍历方式。
再写代码
二维数组
“
同样,先来一段代码:
int es = mat.elemSize();
for (int row = 0; row < mat.rows; row++)
{
for (int col = 0; col < mat.cols; col++)
{
(&mat.data[row * mat.step])[col * es] = 0; //b
(&mat.data[row * mat.step])[col * es + 1] = 0; //g
(&mat.data[row * mat.step])[col * es + 2] = 255; //r
}
}
复制
代码说明
一、es代表的是每个像素所占的字节大小;
二、mat.step表示遍历按行遍历的步长,即每一行数据所占的字节大小;
三、具体遍历时按照二维数组来处理;
四、颜色的存储依然是按照B,G, R的顺序进行存储。
要不要去试一下,体会一下这种遍历方式呢?由你决定喽。