matlab中double和im2double两个函数间的区别

2025-03-29 16:59:51
推荐回答(2个)
回答(1):

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类型的图像。

回答(2):

double只做数据类型转换,(可以认为)不会修改数值本身。

im2double除了做数据类型转换还要对数据做线性缩放。

举例:

a = uint8(250);
b = double(a)
c = im2double(a)

请观察运行结果即知道区别。