一、数字图像类型以及转换
在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:
Data Type
Range
unit8
0 - 255
unit16
0 - 65535
unit32
0 - 2^32
float
-1 - 1 or 0 - 1
int8
-128 to 127
int16
-32768 to 32767
int32
-2^32 - 2^32-1
一张图片的像素范围是[0, 255],所以类型是unit8,可以通过以下代码查看图像的数据类型:
from skimage import io, data
img = data.chelsea()
print(img.dtype.name)
输出为unit8。
关于上表,需要注意的是float类型,它的范围是[0, 1] 或者[-1, 1]。一张彩色图转换成灰度图之后就有unit8变成了float了。
1、unit8转换成float
from skimage import io, data, img_as_float
img = data.chelsea()
print(img.dtype.name)
img_grey = cimg_as_float(img)
print(img_grey.dtype.name)
输出为:
uint8 floa