openCV数据符号说明

在openCV中常常会使用CV_32UC1等相似的字符,这里简单说明含义,作为备忘录。

标识含义

CV_表示是openCV中的宏定义。32是指这个数据是一个32位数据,相同的还有8,16,64三种。U是unsigned的首字母,代表最高位表示计数,而不是符号位。除此之外还有:F,float的首字母,表示浮点数;S,signed首字母,表示有符号的数。后面的C1是channel 1的含义。就是指通道数是1,相应的也有C2,C3等。注意没有C,C,C1这三个表示的是同一种含义。例如CV_32S,CV_32SC,CV_32SC1都是32位有符号整数的含义。

与标准数据结构的对应

openCV数据标准数据
CV_8Uunsigned char (uchar)
CV_8Schar
CV_16Sshort
CV_16Uunsigned short (ushort)
CV_32Ffloat
CV_32Sint
CV_64Fdouble

以上的符号之后如果添加C,C1,不改变含义。

访问方法

访问Mat数据结构有三种方法,我常用的是使用at函数。使用时需要指定数据类型,例如mymat.at<char>(i,j)=3;。注意对于列表中不包含C,以及只含有C和C1的数据结构,访问时使用对应的标准数据就可以。不过不可以混用,即使unsigned char和char也不可以混用,同样的8位二进制所表示的含义是不同的。

对于后面是C2及以上的通道数的数据,使用标准数据会发生数组越界或者存取逻辑错误。应该采用Vec3b等类似的openCV自带数据结构来访问。这里的3就是指通道数是3,相应的还有2,4,6,8。之后的b表示数据结构,我们用下表说明这个符号和标准数据的关系

Vec中符号标准数据
buchar
ddouble
ffloat
iint
sshort
wushort

当中只有CV_8SC系列没有对应的变量,除此之外都有。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值