天天看點

看他怎麼“折騰”(二)

上一節,我們介紹了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的順序進行存儲。

要不要去試一下,體會一下這種周遊方式呢?由你決定喽。