Конвертируйте форматы JPG, PNG и т. Д. В PGM и создайте массив: Python

#python-3.x #keras #computer-vision #conv-neural-network

#python-3.x #keras #компьютерное зрение #conv-нейронная сеть

Вопрос:

Я конвертирую изображения .pgm в массив, используя приведенную ниже функцию. Но сейчас у меня есть все форматы изображений, такие как .jpg / png и т. Д. теперь я хочу преобразовать все в .pgm (без экономии) и должен преобразовать в массив. я использую нижеприведенную функцию для преобразования в массивы

 def image_array(pgm):
    pic = image.load_img(pgm, target_size=(224, 224))
    x = image.img_to_array(pic)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    npfeatures = np.array(x)
    return npfeatures
  

Я пробовал приведенные ниже методы, но не смог интегрировать эти вещи в вышеуказанную функцию.

 image = cv2.imread('C:/Users/N/Desktop/Test.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  

импорт, который я использовал

  • из keras.preprocessing импортируйте изображение
  • из keras.applications.vgg16 импортируйте preprocess_input
  • импортируйте cv2

Ответ №1:

Это должно дать тот же результат, что и ваша image_array функция:

 def image_array(filename):
    x = cv2.imread(filename)
    x = cv2.resize(x, (224, 224))
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    npfeatures = np.array(x)
    return npfeatures
  

Теперь, если вы хотите иметь одноканальное изображение, то есть (224, 224) вместо (224, 224, 3), просто используйте cv2.imread(filename, cv2.IMREAD_GRAYSCALE) .

И если вы хотите, чтобы он был (224, 224, 3), Но отображался серым, т. Е. Все 3 цветовых компонента были равны, используйте

     x = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
    x = cv2.resize(x, (224, 224))
    x = np.tile(np.expand_dims(x, 2), 3)
  

Комментарии:

1. Моя функция выдает мне (224,224,3) для файлов всех типов файлов. я ожидаю, что преобразованные изображения будут (224,224,3), а не (224,224), потому что моя модель принимает (224,224,3)

2. Так что оставьте это без cv2.IMREAD_GRAYSCALE

3. @Ashu Я добавил еще один совет, может быть, это то, что вам нужно. На самом деле непонятно, что вам нужно, потому что PGM — это формат файла для сохранения изображений на диске. Но вы не хотите сохранять изображение на диске, вам нужно какое-то преобразование цвета, но я не могу понять, какое именно.