rambo

matlab的数据类型在opencv中的对应关系

Matlab数据类型

1. 整型:

包括有符号位和无符号位。int8(x), int16(x), int32(x), int64(x), uint8(x)……

2. 浮点型

包括单精度和双精度,single(), double()。MATLAB中输入的数据默认为双精度浮点型。

realmin(), realmax()用于确定浮点型数据类型的下限和上限

3、逻辑型(logical)

下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0:

Matlab中的图像数据类型转换
MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double或者single。因此 I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:Function '*' is not defined for values of class 'uint8'。

图像数据类型转换函数
默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。

single转成uint8类型,就是从有符号到无符号,负数都会被置0。

 

OpenCV mat数据类型