OpenCV學習之資料型別

2022-08-03 10:09:19 字數 1546 閱讀 3582

1. cvpoint

typedef struct cvpoint

cvpoint;

cvpoint用來描述影象中的畫素點。

2. cvsize

typedef struct

cvsize;

cvsize用來描述影象的尺寸。

3. cvrect

typedef struct cvrect

cvrect;

cvrect用來描述影象的乙個區域。

4. cvscalar

typedef struct cvscalar

cvscalar;

cvscalar用來描述rgba值。

所有的資料型別都有個以其名稱來定義的建構函式,例如:cvsize,它的建構函式位cvsize,只是首字母是小寫的。

5. 矩陣型別cvmat

typedef struct cvmat

data;

#ifdef __cplusplus

union

;union

;#else

int rows;

int cols;

#endif

}cvmat;

cvmat結構成員說明:

type:為矩陣元素的型別,像這種形式:cv_(s|u|f)c,例如:cv_8uc1,表示8位無符號一元組。

step:行長度,包含4位元組對齊的部分。

data:矩陣資料域指標,因為矩陣元素資料型別可以是任何基本的資料型別,所以它這裡採用了個聯合體。

rows:矩陣行數。

cols:矩陣列數。

不要以為矩陣是很複雜的東西,它的資料也是連續儲存的,只不過它有個rows和cols,相當於有兩把尺子,cols這麼多表示一行,總共rows行。

6. iplimage

typedef struct _iplimage

iplimage;

iplimage是通常所說的「影象」進行編碼的基本結構。遵循物件導向設計思想,iplimage由cvmat派生,cvmat由cvarr派生。在函式原型中會經常看到cvarr*,當它出現時,便可以將cvmat*或iplimage*傳遞到程式。

重要成員說明:

width:就是經常說的影象畫素寬度。

height:影象畫素高度。

depth:表示影象畫素型別,可以取如下值:

ipl_depth_8u,ipl_depth_8s, ipl_depth_16s, ipl_depth_32s, ipl_depth_32f和ipl_depth_64f

分別表示8位無符號,8位有符號,16位有符號,32位有符號,32位浮點,64位浮點數。

nchannels:可取值1,2, 3, 4,表示通道數。

origin:有兩種取值,ipl_origin_tl和ipl_origin_bl,分別設定座標原點的位置於影象的左上角和左下角。

widthstep:和矩陣的step引數類似。

imagedata:資料域指標,這是和矩陣最大的不同,矩陣元素資料可以是任何資料型別,而iplimage是unsigned char型別的,表示的是畫素資料。

OpenCV學習之Scalar資料型別

首先看scalar的英文釋義 scalar的意思是標量,標量是什麼意思呢?亦稱 無向量 有些物理量,只具有數值大小,而沒有方向,部分有正負之分。物理學中,標量 或作純量 指在座標變換下保持不變的物理量。用通俗的說法,標量是只有大小,沒有方向的量。首先來看看,scalar在opencv中的定義 sca...

opencv學習 opencv的資料型別 2

cv rect類 矩陣類包含point類的x,y 矩陣左上角 size類的width和height 矩陣大小 預設構造 cv rect r 拷貝構造 cv rect r2 r1 數值初始化 cv rect r x,y,w h 點座標及大小初始化構造 cv rect r p,sz 兩點初始化構造 cv...

OpenCV的資料型別

一般的影象檔案格式使用的是 unsigned 8bits。cvmat矩陣對應的引數型別就是cv 8uc1,cv 8uc2,cv 8uc3等。float 是32位的,對應cvmat資料結構引數就是 cv 32fc1,cv 32fc2,cv 32fc3等。double是64位,對應cvmat資料結構引數...