double 就是简单地把一个变量的类型转换成double型,数值大小不变,比如一个unit8类型变量a=1,double(a)的结果还是6,不过现在a已经是double型了,在图像处理中,用的不多; 常用的是im2double函数,如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。如果输入本身就是double类型,输出还是double类型,并不进行归一化。。 mat2gray是将图像矩阵归一化操作,常用的为A = im2uint8(mat2gray(image)),这样就将image矩阵转化为uint8类型的图像。
double只做数据类型转换,(可以认为)不会修改数值本身。im2double除了做数据类型转换还要对数据做线性缩放。举例:a = uint8(250);b = double(a)c = im2double(a)请观察运行结果即知道区别。