opencv Mat基本操作

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個元素進行操作.



發佈了107 篇原創文章 · 獲贊 122 · 訪問量 104萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章