Функция изменения размера Skimage возвращает черные изображения - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь изменить размер некоторых изображений, которые я загрузил, используя функцию imread в matplotlib.Пример:

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

enter image description here

Тем не менее, когда я пытаюсь применить функцию изменения размера, а затем повторный график:

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()

Результат: enter image description here

Почему?

ОБНОВЛЕНИЕ: операторы импорта:

%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

1 Ответ

0 голосов
/ 30 января 2019

Ваше изображение начинается с пикселей в диапазоне 0..1.Когда вы изменяете его размер, вы делите его на 255, поэтому диапазон теперь равен 0..0.003, поэтому он выглядит черным.

Решение?

Изменить эту строку:

return img /255

к этому:

return img
...