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 FAST TYPE_5_8

调试断言失败 OpenCv is_block_type_valid(header->_block_use)

OpenCV__elemSize

Opencv 2.4.12_2 calcOpticalFlowPyrLK() 错误

Python,opencv匹配模板错误

为啥我解决了“Debug Assertion Failed OpenCv is_block_type_valid(header->_block_use)”