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

函数double()和im2double()有什么区别?【抱歉没有金币了,求大神啊~~
最新回答
敷衍丶换来无言的结局ゝ

2024-09-10 02:16:49

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类型的图像。
云起兮衣飞扬

2024-09-10 01:43:39

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

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

举例:

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

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