OpenCV__type()返回的数字
Posted narjaja
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV__type()返回的数字相关的知识,希望对你有一定的参考价值。
OpenCV中的类型以宏定义的形式给出
type_c.h中片段
#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) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
#define CV_MAKE_TYPE CV_MAKETYPE
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
...
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
其中channel中有1、2、3通道,flag有CV_8U、CV_8S等八种分别以0~7数字表示。
通道cn-1左移三位加上flag即为cv::Mat::type()的返回值。
通过返回值判断类型
返回值n除8取整加1为channel,所得的余数即为不同的flag。
以上是关于OpenCV__type()返回的数字的主要内容,如果未能解决你的问题,请参考以下文章
调试断言失败 OpenCv is_block_type_valid(header->_block_use)
Opencv 2.4.12_2 calcOpticalFlowPyrLK() 错误
为啥我解决了“Debug Assertion Failed OpenCv is_block_type_valid(header->_block_use)”