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
我正在尝试调整使用 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