您的位置:首页 > 运维架构

opencv中的CV_MAKETYPE及其他相关基本类型定义

2016-11-07 10:49 381 查看

opencv中的CV_MAKETYPE及其他相关基本类型定义

在文件Cvdef.h(路径为opencv\sources\modules\core\include\opencv2\core)中,可以看到opencv中类似于CV_8U等描述图像结构的定义:



在这里,我们称类似CV_8U的宏定义为“图像类型描述符”。从上图看出,所有的“图像类型描述符”均经由一个叫做 CV_MAKETYPE的宏来定义。根据上述代码,我们可以推导出公式:

CV_MAKETYPE(depth,cn)=(cn-1)*8+depth

通过这个公式,我们可以定义CV_8UC1,CV_8UC4。。。一直到CV_64UC4的“图像类型描述符”,而且保证了他们的值不会冲突。

#define CV_8U   0
#define CV_8S   1
#define CV_16U  2
#define CV_16S  3
#define CV_32S  4
#define CV_32F  5
#define CV_64F  6
#define CV_USRTYPE1 7
...
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)//=1
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)//=2
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)//=3
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)//=4
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))//=n%8(取余)+0*8

#define CV_8SC1 CV_MAKETYPE(CV_8S,1)//=9
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)//=10
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)//=11
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)//=12
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))//=n%8+1*8
...
#define CV_64FC1 CV_MAKETYPE(CV_64F,1)//=49
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)//=50
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)//=51
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)//=52
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))//=n%8+6*8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv