一、图像数据类型及转换
在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:
Data typeRange
uint8
0 to 255
uint16
0 to 65535
uint32
0 to 232
float
-1 to 1 or 0 to 1
int8
-128 to 127
int16
-32768 to 32767
int32
-231 to 231 - 1
一张图片的像素值范围是[0,255], 因此默认类型是unit8, 可用如下代码查看数据类型:
from skimage importio,data
img=data.chelsea()print(img.dtype.name)
在上面的表中,特别注意的是float类型,它的范围是[-1,1]或[0,1]之间。一张彩色图片转换为灰度图后,它的类型就由unit8变成了float
1、unit8转float
from skimage importdata,img_as_float
img=data.chelsea()print(img.dtype.name)
dst=img_as_float(img)print(dst.dtype.name)
输出:
uint8
float64
2、float转uint8
from skimage importimg_as_ubyteimportnumpy