#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 — это формат файла для сохранения изображений на диске. Но вы не хотите сохранять изображение на диске, вам нужно какое-то преобразование цвета, но я не могу понять, какое именно.