我正在使用以下函数来调整具有形状{"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
答案 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
,它应该可以解决您的问题。