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
MySQL位資料型別
標籤 空格分隔 高效能mysql 第四章 schema與資料型別 mysql位資料型別 以innodb為例說明 innodb為每個bit列使用乙個足夠儲存的最小整數型別來存放,所以不能節省儲存空間。mysql把bit當作字串型別,而不是數字型別。但在數字上下文場景中,會轉換成數字。例 mysql c...
OpenCV的資料型別
一般的影象檔案格式使用的是 unsigned 8bits。cvmat矩陣對應的引數型別就是cv 8uc1,cv 8uc2,cv 8uc3等。float 是32位的,對應cvmat資料結構引數就是 cv 32fc1,cv 32fc2,cv 32fc3等。double是64位,對應cvmat資料結構引數...
opencv中資料型別
cv 32fc1和cv 64fc1,前者是32位資料,後者是64位資料。因此前者型別的資料必須以指向32位資料型別的指標訪問,否則會報錯,而後者型別的資料必須以指向64位資料型別的指標訪問,否則會報錯。也就是說,你如果用cv 32fc1,那麼後面對該矩陣的輸入輸出的資料指標型別都應該是float,這...