Как загрузить несколько изображений в массив NumPy?
Как загрузить пиксели нескольких изображений в каталог в массиве numpy . Я загрузил одно изображение в массив NumPy . Но не могу понять, как загрузить несколько изображений из каталога . Вот что я сделал до сих пор
image = Image.open('bn4.bmp')
nparray=np.array(image)
это загружает матрицы 32*32 . Я хочу загрузить 100 изображений в массив numpy . Я хочу сделать 100*32*32 размер массива numpy . Как я могу это сделать ? Я знаю, что структура будет выглядеть примерно так
for filename in listdir("BengaliBMPConvert"):
if filename.endswith(".bmp"):
-----------------
else:
continue
но может не узнайте, как загрузить изображения в массив numpy
1 ответов
получение списка файлов BMP
чтобы получить список BMP-файлов из каталога BengaliBMPConvert
использовать:
import glob
filelist = glob.glob('BengaliBMPConvert/*.bmp')
С другой стороны, если вы уже знаете имена файлов, просто положите их в последовательности:
filelist = 'file1.bmp', 'file2.bmp', 'file3.bmp'
объединение всех изображений в один массив numpy
чтобы объединить все изображения в один массив:
x = np.array([np.array(Image.open(fname)) for fname in filelist])
маринование массива numpy
чтобы сохранить массив numpy в файл, используя рассол:
import pickle
pickle.dump( x, filehandle, protocol=2 )
здесь x
массив numpy для сохранения,filehandle
является дескриптором для файла рассола, например open('filename.p', 'wb')
и protocol=2
говорит рассол использовать свой текущий формат, а не какой-то древний устаревший формат.
кроме того, массивы numpy можно мариновать с помощью методов, поставляемых numpy (hat tip:Тиган). Дамп массива x
в файле file.npy
использовать:
x.dump('file.npy')
для загрузки массива x
вернуться из файл:
x = np.load('file.npy')
для получения дополнительной информации см. документы numpy для dump и загрузить.