opencv中的CV_MAKETYPE及其他相关基本类型定义
在文件Cvdef.h(路径为opencv\sources\modules\core\include\opencv2\core)中,可以看到opencv中类似于CV_8U等描述图像结构的定义:
[外链图片转存中…(img-lSojUSvS-1649130678007)]
在这里,我们称类似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