使用skimage python库调整图像大小后丢失信息

时间:2016-11-23 20:05:10

标签: python image-processing scipy scikit-image

我正在使用以下函数来调整具有形状{"stringSet":} 的图像集的大小。我正在使用(samples, 1, image_row, image_column)库。

skimage

然而,我注意到调整大小的图像变成0-1阵列。以下是一些测试结果。我们可以看到调整大小的图像只包含0-1值。我不知道我的调整大小功能有什么问题。

from skimage import io
from skimage.transform import resize   
def preprocess(imgs):
imgs_p = np.ndarray((imgs.shape[0], imgs.shape[1], img_rows, img_cols), dtype=np.uint8)
for i in range(imgs.shape[0]):
    imgs_p[i, 0]  = resize(imgs[i, 0], (img_rows, img_cols))
return imgs_p

2 个答案:

答案 0 :(得分:0)

resize的输出有一个浮点数,因此它在0-1范围内。您可以使用以下命令将图像转换回uint8范围:

from skimage import img_as_ubyte
image = img_as_ubyte(image)

请参阅user guide以获取有关数据类型及其范围的完整说明。

答案 1 :(得分:0)

调整大小后,您的图像将转换为浮点数。 transform.resize()有一个可选的布尔标志:preserve_range。来自source code

  

preserve_range :bool,可选。是否保留原始值范围。否则,输入图像将根据img_as_float

的约定进行转换

将其设置为True,它应该可以解决您的问题。