OpenCV Mat資料型別及位數總結

2021-06-21 20:25:53 字數 2909 閱讀 5894

opencv mat資料型別及位數總結

float: 

4位元組,6-7位有效數字 -3.4e-38 到 3.4e38 

double: 8位元組,15~16位有效數字 -1.7e-308 到 1.7e308

在opencv裡面,許多資料結構為了達到記憶體使用的最優化,通常都會用它最小上限的空間來分配變數,有的資料結構也會因為影象檔案格式的關係而給予適當的變數,因此需要知道它們宣告的空間大小來配置適當的變數。一 般標準的,為rgb格式它們的大小為8bits格式,範圍為0~255,對乙個int空間的型別來說實在是太小,整整浪費了24bits的空間,假設有個640*480的bmp檔案空間儲存記憶體,那整整浪費了640*480*3*(32-8)bits的記憶體空間,總共浪費了2.6mb!,也就是那 2.6mb內什麼東西都沒儲存,如果今天以8bits的格式來儲存則只使用到0.6mb的記憶體而已(640*480*3*(8)+54 bits),因此,對於檔案格式的對應是一件很重要的事。

在這邊除了要考慮bits的空間大小外,還要考慮使用型別的正負號的問題,一般的影象檔案是不存在負號的,如果今天即使選則正確的空間大小,可是出現的結果卻是負的,那就功虧一簣了。這裡除了float及double型別,char,int,short int都是用二的補數表示法,它們不具正負號bit,而float,double則是用ieee 754,在第32bit,64bit上有乙個正負號bit.

cvcreateimage()及cvcreatemat()對應

1.unsigned 8bits(一般的影象檔案格式使用的大小)

iplimage資料結構引數:ipl_depth_8u

cvmat資料結構引數:cv_8uc1,

cv_8uc2,

cv_8uc3,

cv_8uc4

變數型別

空間大小

範圍其他

uchar

8bits

0~255

(opencv預設變數,同等unsigned char)

unsigned char

8bits

0~255

2.signed 8bits

iplimage資料結構引數:ipl_depth_8s

cvmat資料結構引數:cv_8sc1,

cv_8sc2,

cv_8sc3,

cv_8sc4

變數型別

空間大小

範圍其他

char

8bits

-128~127

3.unsigned 16bits

iplimage資料結構引數:ipl_depth_16u

cvmat資料結構引數:cv_16uc1,

cv_16uc2,

cv_16uc3,

cv_16uc4

變數型別

空間大小

範圍其他

ushort

16bits

0~65535

(opencv預設變數,同等unsigned short int)

unsigned short int

16bits

0~65535

(unsigned short)

4.signed 16bits

iplimage資料結構引數:ipl_depth_16s

cvmat資料結構引數:cv_16sc1,

cv_16sc2,

cv_16sc3,

cv_16sc4

變數型別

空間大小

範圍其他

short int

16bits

-32768~32767

(short)

5.signed 32bits

iplimage資料結構引數:ipl_depth_32s

cvmat資料結構引數:cv_32sc1,

cv_32sc2,

cv_32sc3,

cv_32sc4

變數型別

空間大小

範圍其他

int32bits

-2147483648~2147483647

(long)

6.float 32bits

iplimage資料結構引數:ipl_depth_32f

cvmat資料結構引數:cv_32fc1,

cv_32fc2,

cv_32fc3,

cv_32fc4

變數型別

空間大小

範圍其他

float

32bits

1.18*10-38~3.40*1038

7.double 64bits

cvmat資料結構引數:cv_64fc1,

cv_64fc2,

cv_64fc3,

cv_64fc4

變數型別

空間大小

範圍其他

double

64bits

2.23*10-308~1.79*10308

8.unsigned 1bit

iplimage資料結構引數:ipl_depth_1u

變數型別

空間大小

範圍其他

bool

1bit

0~1

其他變數對應

1.signed 64bits

int64

long long

2.unsigned 64 bits

uint64

unsigned long long

OpenCV mat資料型別及位數

float 4位元組 6 7位有效數字 3.4e 38 到 3.4e38 double 8位元組 15 16位有效數字 1.7e 308 到 1.7e308 在opencv裡面,許多資料結構為了達到記憶體使用的最優化,通常都會給它最小上限的空間來分配變數,有的資料結構也會因為影象檔案格式的關係而給予...

OpenCV Mat資料型別及位數總結

opencv mat資料型別及位數總結 float 4位元組,6 7位有效數字 3.4e 38 到 3.4e38 double 8位元組,15 16位有效數字 1.7e 308 到 1.7e308 在opencv裡面,許多資料結構為了達到記憶體使用的最優化,通常都會用它最小上限的空間來分配變數,有的...

OpenCV Mat資料型別及位數總結

opencv mat資料型別及位數總結 float 4位元組,6 7位有效數字 3.4e 38 到 3.4e38 double 8位元組,15 16位有效數字 1.7e 308 到 1.7e308 在opencv裡面,許多資料結構為了達到記憶體使用的最優化,通常都會用它最小上限的空間來分配變數,有的...