opencv矩阵元素类型

本文介绍了OpenCV中矩阵元素的类型定义,包括CV_MAKETYPE宏的使用,以及如何通过CV_MAT_DEPTH和CV_MAT_CN等宏来获取元素的数据类型和通道数量。文章深入解析了位移操作在整数类型中的应用,并讨论了有符号整数的存储方式,特别是负数的补码表示。
摘要由CSDN通过智能技术生成

基础

1 位移操作

移位操作有两种类型,一种是逻辑移位(logical shift)和算术移位(arithmetic shift)。逻辑移位中被移出的位被丢弃,空缺位(variant bit)0填充。算术移位中移出位被丢弃,空缺位用符号位填充。

c/c++中,整数分为有符号和无符号两种类型,它们的移位操作有所区别。对于无符号整数,左移右移均采用逻辑移位;对于有符号整数,右移使用算术移位,左移使用逻辑移位。

所以对于有符号整数的右移,并不会改变整数的正负,但是左移中却有可能会改变。

 

2 负数存储

在机器里,有符号的整数的存储,对于负整数来说,它是用补码存储的,这里需要知道原码,反码和补码。原码指的本来的数据,反码则是对原码按位取反,补码则是对原码取反后加1,即补码=反码+1

以占两个字节长度的数据为例,它的取值范围是-32768-32767

1000 0000 0000 0000(原码) --->0111 1111 1111 1111(反码)-->1000 0000 0000 0000(补码)

该补码的值是32768,因为它本来是负值,所以1000 0000 0000 0000(原码)表示的值即为-32768

1111 1111 1111 1111(原码)--->0000 0000 0000 0000(反码)-->0000 0000 0000 0001(补码),所以这里原码表示的值是-1

 

opencv矩阵元素类型

1 CV_MAKETYPE

创建矩阵的时候,有几个函数,下面是其中的

CvMat cvMat(introws,int

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值