函式簡介
OpenCV中重要的矩陣變換函式,使用方法為CvMat* cvCreateMat ( int rows, int cols, int type ); 這裡type可以是任何預定義類型,預定義類型的結構如下:CV_<bit_depth> (S|U|F)C<number_of_channels>。於是,矩陣的元素可以是32位浮點型數據(CV_32FC1),或者是無符號的8位三元組的
整型數據(CV_8UC3),或者是無數的其他類型的元素。一個CvMat的元素不一定就是個單一的數字。在矩陣中可以通過單一(簡單)的輸入來表示多值,這樣我們可以在一個三原色圖像上描繪多重色彩通道。對於一個包含RGB通道的簡單圖像,大多數的圖像操作將分別套用於每一個通道(除非另有說明)。
基本結構
CvMat 結構:矩陣頭
typedef struct CvMat{ int type; int step; int* refcount;/* for internal use only */ int hdr_refcount; union { uchar* ptr; short* s; int* i; float* fl; double* db; } data; union { int rows; int height; }; union { int cols; int width; };} CvMat;
矩陣由寬度(width),高度(height),
類型(type),行數據長度(step,行的長度用位元組表示而不是用整形或者浮點型長度)和一個指向數據的指針構成。
此類信息通常被稱作矩陣頭。很多程式是區分矩陣頭和數據體的,後者是各個data成員所指向的記憶體位置。