1. CV_MAKETYPE(depth,cn)
#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))这个宏用来读入位深度depth和通道数cn从而生成矩阵类型type。
这里先解释一下矩阵数据类型type,我们经常会看到诸如Mat img = Mat::zeros(w, w, CV_8UC1);的语句,在该语句中我们用CV_8UC1来标识要生成的矩阵元素类型,zeros函数利识别该标识进而产生相应的数据类型。
OpenCV中对矩阵的元素类型定义如下:
#define CV_CN_MAX 512
#define CV_CN_SHIFT 3
#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
#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_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
#define CV_MAKETYPE(depth,cn) (C