为了节省存储空间,matlab为图像提供特殊的数据类型uint8(8位无符号整数),这样存储的图像称为8位图像。
imread将灰度图像存储在8位矩阵中,RGB图像的情况下存储在8位RGB矩阵中。
因此,matlab读取的图像的数据是uint8,而在matlab中数值一般被存储在double型(64位)中,进行运算。 首先,要将图像转换为双精度形式的才能运算,
I2=im2双精度(I1 ) %将图像I1转换为双精度类型(假设图像矩阵范围为0到255 ) ) ) ) ) ) 65
或者
i64=双精度(i8 )/255; %uint将转换为双精度
如果不进行转换,计算将发生溢出。
这意味着在显示时用uint8运算时使用double
im2双精度(:将图像数组转换为双精度类型
im2uint8) ) :将图像阵列转换为unit8类型
im2uint16 ) ) :将图像阵列转换为unit16类型