1. Mat 初始化爲0
Mat img;
img=Mat::zeros(int rows, int cols, int type);
2.Mat 數據結構組合:
個人觀察:例如:
Mat R = Mat( 3, 2, CV_8UC3 )
這表示的是 有三個通道,每一個通道上面都是一個3×2的矩陣;因此猜測:RGB圖像的Mat應該是 Mat(1,1,CV_8UC3)的.
所以裏面的數據排列的應該是: BGRBGR............BGRBGR.
3. 關聯到一個數組
uchar array[3][2];
Mat R( 1,3 , CV_8UC3 , array); // 數組本來就是地址,不用& 哈
這個時候讀進去的數據應該是: 第一通道: 讀進去數組3個值,接下來第二通道讀 3個值.剩下的是沒有的,也就是系統的初始化.
注意的是:Mat 比它小的時候就直接截斷了.
4. 定義一個指針 指向這個Mat
Mat裏面是有一個Ptr的成員的,因此可以定義一個指針指向它,對Mat進行操作或者是遍歷(這是比較快的做法)
uchar* data;
data = R.ptr<uchar>(0); //指向第一行的指針,0 可以換成 j 行
data[i] =.....; // 這就是對 第一行的 地i個元素進行操作.