Opencvのtype_c.hノート

30415 ワード

Opencvのdepthマクロ定義


いくつかの数字をバイナリに変換すると,推測できる差は多くない.
00000000 00000000 00000000 00000000‬       NUM:000000000 00000000 00000000 00000001‬       NUM:100000000 00000000 00000000 00000010‬       NUM:200000000 00000000 00000000 00000011‬       NUM:300000000 00000000 00000000 00000100‬       NUM:400000000 00000000 00000000 00000101‬       NUM:500000000 00000000 00000000 00000110‬       NUM:600000000 00000000 00000000 00000111‬       NUM:700000000 00000000 00000000 00001000‬       NUM:800000000 00000000 00000000 00001001‬       NUM:900000000 00000000 00000000 00001010‬       NUM:1000000000 00000000 00000000 00001011‬       NUM:1100000000 00000000 00000000 00001100‬       NUM:1200000000 00000000 00000000 00001101‬       NUM:1300000000 00000000 00000000 00001110‬       NUM:1400000000 00000000 00000000 00001111‬       NUM:1500000000 00000000 00000000 00010000‬       NUM:1600000000 00000000 00000000 00010001‬       NUM:1700000000 00000000 00000000 00010010‬       NUM:1800000000 00000000 00000000 00010011‬       NUM:1900000000 00000000 00000000 00010100‬       NUM:2000000000 00000000 00000000 00010101‬       NUM:2100000000 00000000 00000000 00010110‬       NUM:2200000000 00000000 00000000 00010111‬       NUM:2300000000 00000000 00000000 00011000‬       NUM:2400000000 00000000 00000000 00011001‬       NUM:2500000000 00000000 00000000 00011010‬       NUM:2600000000 00000000 00000000 00011011‬       NUM:2700000000 00000000 00000000 00011100‬       NUM:2800000000 00000000 00000000 00011101‬       NUM:2900000000 00000000 00000000 00011110‬       NUM:3010000000 00000000 00000000 00000000‬       FIXED_TYPE
‭01000000 00000000 00000000 00000000‬       FIXED_SIZE
‭00111111 11111111 00000000 00000000‬       KIND_MASK
00000000 00000000 00000000 00000000       NONE
‭00000000 00000001 00000000 00000000‬       MAT
‭00000000 00000010 00000000 00000000‬       MATX
‭00000000 00000011 00000000 00000000‬       STD_VECTOR
‭00000000 00000100 00000000 00000000‬       STD_VECTOR_VECTOR
‭00000000 00000101 00000000 00000000‬       STD_VECTOR_MAT
‭00000000 00000110 00000000 00000000‬       EXPR
‭00000000 00000111 00000000 00000000‬       OPENGL_BUFFER
‭00000000 00001000 00000000 00000000‬       OPENGL_TEXTURE
‭00000000 00001001 00000000 00000000‬       GPU_MAT
‭00000000 00001010 00000000 00000000‬       OCL_MAT

‭00000000 00000000 00000000 00001000‬       CV_DEPTH_MAX, NUM:800000000 00000000 00000000 00000111‬       CV_MAT_DEPTH_MASK, NUM:700000000 00000000 00000000 00000000‬       CV_8UC1, NUM:000000000 00000000 00000000 00001000‬       CV_8UC2, NUM:800000000 00000000 00000000 00010000‬       CV_8UC3, NUM:1600000000 00000000 00000000 00011000‬       CV_8UC4, NUM:2400000000 00000000 00000000 00000001‬       CV_8SC1, NUM:100000000 00000000 00000000 00001001‬       CV_8SC2, NUM:900000000 00000000 00000000 00010001‬       CV_8SC3, NUM:1700000000 00000000 00000000 00011001‬       CV_8SC4, NUM:2500000000 00000000 00000000 00000010‬       CV_16UC1, NUM:200000000 00000000 00000000 00001010‬       CV_16UC2, NUM:1000000000 00000000 00000000 00010010‬       CV_16UC3, NUM:1800000000 00000000 00000000 00011010‬       CV_16UC4, NUM:2600000000 00000000 00000000 00000011‬       CV_16SC1, NUM:300000000 00000000 00000000 00001011‬       CV_16SC2, NUM:1100000000 00000000 00000000 00010011‬       CV_16SC3, NUM:1900000000 00000000 00000000 00011011‬       CV_16SC4, NUM:2700000000 00000000 00000000 00000100‬       CV_32SC1, NUM:400000000 00000000 00000000 00001100‬       CV_32SC2, NUM:1200000000 00000000 00000000 00010100‬       CV_32SC3, NUM:2000000000 00000000 00000000 00011100‬       CV_32SC4, NUM:2800000000 00000000 00000000 00000101‬       CV_32FC1, NUM:500000000 00000000 00000000 00001101‬       CV_32FC2, NUM:1300000000 00000000 00000000 00010101‬       CV_32FC3, NUM:2100000000 00000000 00000000 00011101‬       CV_32FC4, NUM:2900000000 00000000 00000000 00000110‬       CV_64FC1, NUM:600000000 00000000 00000000 00001110‬       CV_64FC2, NUM:1400000000 00000000 00000000 00010110‬       CV_64FC3, NUM:2200000000 00000000 00000000 00011110‬       CV_64FC4, NUM:3001111111 11111111 11111111 11111111‬       CV_AUTO_STEP, 0x7fffffff

00000000 00000000 00001111 11111000‬      CV_MAT_CN_MASK
00000000 00000000 00001111 11111111‬      CV_MAT_TYPE_MASK
‭00000000 00000000 01000000 00000000‬      CV_MAT_CONT_FLAG
00000000 0000000010000000 00000000‬      CV_SUBMAT_FLAG
‭11111111 11111111 00000000 00000000‬      CV_MAGIC_MASK, 0xFFFF000001000010 01000010 00000000 00000000‬      CV_MAT_MAGIC_VAL, 0x42420000


マクロ定義


/****************************************************************************************\
*                                  Matrix type (CvMat)                                   *
\****************************************************************************************/

#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_8UC3 CV_MAKETYPE(CV_8U,3)
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))

#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))

#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))

#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))

#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))

#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))

#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))

#define CV_AUTO_STEP  0x7fffffff
#define CV_WHOLE_ARR  cvSlice( 0, 0x3fffffff )

#define CV_MAT_CN_MASK          ((CV_CN_MAX - 1) << CV_CN_SHIFT)
#define CV_MAT_CN(flags)        ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
#define CV_MAT_TYPE_MASK        (CV_DEPTH_MAX*CV_CN_MAX - 1)
#define CV_MAT_TYPE(flags)      ((flags) & CV_MAT_TYPE_MASK)
#define CV_MAT_CONT_FLAG_SHIFT  14
#define CV_MAT_CONT_FLAG        (1 << CV_MAT_CONT_FLAG_SHIFT)
#define CV_IS_MAT_CONT(flags)   ((flags) & CV_MAT_CONT_FLAG)
#define CV_IS_CONT_MAT          CV_IS_MAT_CONT
#define CV_SUBMAT_FLAG_SHIFT    15
#define CV_SUBMAT_FLAG          (1 << CV_SUBMAT_FLAG_SHIFT)
#define CV_IS_SUBMAT(flags)     ((flags) & CV_MAT_SUBMAT_FLAG)

#define CV_MAGIC_MASK       0xFFFF0000
#define CV_MAT_MAGIC_VAL    0x42420000
#define CV_TYPE_NAME_MAT    "opencv-matrix"