matlab中怎样将uint8转化成double型
1、打开matlab,在命令行窗口中输入a=1.2345;round(a),按回车键,得到结果1,已经将浮点型数据a四舍五入成整型1。
2、输入a=1.6345;round(a),按回车键,得到结果2。
3、在命令行窗口中输入a=1.2345;ceil(a),按回车键,得到结果2,已经将浮点型数据a向上取整成2。
4、输入a=1.6345;ceil(a),按回车键,可以看到同样结果为2,ceil函数向上取整函数。
5、在命令行窗口中输入floor(a),按回车键得到结果1,floor函数向下取整。
6、将浮点型数据转成整型的函数,都可以用于矩阵,输入 a=[1.23 3.56 7.98];floor(a),矩阵中每个元素都向下取整。
因此I2=im2double(I1) :把图像数组I1转换成double精度类型;
如果不转换,在对uint8进行加减时会产生溢出.
图像数据类型转换函数:
默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;
matlab还支持无符号整型(uint8和uint16);
uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图象数组转换成double精度类型
im2uint8():将图象数组转换成unit8类型
im2uint16():将图象数组转换成unit16类型.
使用double命令
比如:
a=int8(124);
a2=double(a);
whos
该段代码先创建了一个uint8的变量a
再用double命令将a变为double变量并赋值给了a2
通过whos显示类型:
Name Size Bytes Class Attributes
a 1x1 1 int8
a2 1x1 8 double
a=randint(5,10,[1 300])%产生5行10列1-300的整数
b=uint8(a)%将a其转化成uint8
d=double(b)%将b其转化成double
%虽说b,和d显示的结果是一样的,
%但是你可以做下面的测试说明其实他们是不同的
b(1,1)=500
d(1,1)=500