it-swarm.com.ru

Как загрузить несколько изображений в массиве NumPy?

Как загрузить пиксели нескольких изображений в каталог в массиве. Я загрузил одно изображение в массиве NumPy. Но не могу понять, как загрузить несколько изображений из каталога. Вот что я сделал до сих пор 

image = Image.open('bn4.bmp')
nparray=np.array(image)

Это загружает 32 * 32 матрицы. Я хочу загрузить 100 изображений в массиве NumPy. Я хочу сделать массив размером 100 * 32 * 32. Как я могу это сделать ? Я знаю, что структура будет выглядеть примерно так 

for filename in listdir("BengaliBMPConvert"):
  if filename.endswith(".bmp"):
       -----------------
  else:
       continue

Но не могу узнать, как загрузить изображения в массив Numpy 

10
Codehead

Получение списка файлов BMP

Чтобы получить список BMP файлов из каталога BengaliBMPConvert, используйте:

import glob
filelist = glob.glob('BengaliBMPConvert/*.bmp')

С другой стороны, если вы уже знаете имена файлов, просто поместите их в последовательность:

filelist = 'file1.bmp', 'file2.bmp', 'file3.bmp'

Объединение всех изображений в один массив

Чтобы объединить все изображения в один массив:

x = np.array([np.array(Image.open(fname)) for fname in filelist])

Мариновать массив

Чтобы сохранить массив numpy в файл с помощью pickle:

import pickle
pickle.dump( x, filehandle, protocol=2 )

где x - массив numpy для сохранения, filehandle - дескриптор файла pickle, такой как open('filename.p', 'wb'), а protocol=2 указывает, что pickle использует свой текущий формат, а не какой-то устаревший устаревший формат.

Кроме того, массивы NumPy можно травить, используя методы, предоставленные NumPY (шапка: tegan ). Чтобы вывести массив x в файл file.npy, используйте:

x.dump('file.npy')

Чтобы загрузить массив x обратно из файла:

x = np.load('file.npy')

Для получения дополнительной информации см. Документацию для dump и load .

18
John1024

Используйте OpenCV imread () function вместе с os.listdir () , как

import numpy as np
import cv2
import os

instances = []

# Load in the images
for filepath in os.listdir('images/'):
    instances.append(cv2.imread('images/{0}'.format(filepath),0))

print(type(instances[0]))

класс 'numpy.ndarray'

Это возвращает вам список (== instances), в котором хранятся все значения оттенков серого для изображений. Для цветных изображений просто установите .format(filepath),1.

0
2Obe