Skimage 调整大小功能 returns 黑色图像

Skimage resize function returns black images

我正在尝试调整使用 matplotlib 的 imread 函数加载的一些图像的大小。 一个例子:

plt.figure()
plt.imshow(imgs[0])
plt.colorbar()
plt.grid(False)
plt.show()

但是,当我尝试应用调整大小功能然后重新绘制时:

def rescale_image(img):
    """Rescale the jpg range of 0-255 to 0-1"""
    img = resize(img, (100, 100), anti_aliasing=True)
    return img /255
#imgs = [rescale_image(i) for i in imgs]

io = rescale_image(imgs[0])
plt.figure()
plt.imshow(io)
plt.colorbar()
plt.grid(False)
plt.show()

结果是:

为什么?

更新:导入语句:

%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib.image import imread
from skimage.transform import resize


imgs = [imread(p) for p in paths_list]# paths list is generated by glob.glob on the folder of images

您的图片以 0..1 范围内的像素开始。当你调整它的大小时,你除以 255,所以范围现在是 0..0.003 所以它看起来是黑色的。

解决方案?

更改此行:

return img /255

对此:

return img