OpenCV变量的对应

风在竹林 posted @ 2009年7月17日 05:24 in OpenCV with tags OpenCV数据结构操作与运算 , 2447 阅读

在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


变量类型 空间大小 范围 其他
int 32bits -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


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter