Matlab数据类型
1. 整型:
包括有符号位和无符号位。int8(x), int16(x), int32(x), int64(x), uint8(x)……
1 2 3 4 |
intmin(), intmax()分别用于确定整型数据类型的下限和上限 x = zeros(3, 'int8'), 表示生成3阶全零矩阵,数据类型为int8 y = ones(5, 'single'), 生成5阶全1矩阵,数据类型为single whos -- 查看工作区间中的变量信息。whos var -- 查询变量var的信息 |
2. 浮点型
包括单精度和双精度,single(), double()。MATLAB中输入的数据默认为双精度浮点型。
realmin(), realmax()用于确定浮点型数据类型的下限和上限
3、逻辑型(logical)
下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0:
1 2 |
A = rand(5); A(A>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型。
1 2 3 |
im2double():将图像数组转换成double精度类型 im2uint8():将图像数组转换成unit8类型 im2uint16():将图像数组转换成unit16类型息 |
single转成uint8类型,就是从有符号到无符号,负数都会被置0。
OpenCV mat数据类型