Numpy Изменение Размера / Масштабирование Изображения

Я хотел бы взять изображение и изменить масштаб изображения, в то время как это массив numpy.

например, у меня есть это изображение бутылки coca-cola: бутылка-1

что переводится в массив numpy shape (528, 203, 3) и я хочу изменить это, чтобы сказать размер этого второго изображения: бутылка-2

, который имеет форму (140, 54, 3).

Как изменить размер изображения на определенную форму, пока еще сохранение исходного изображения? Другие ответы предлагают удалить каждую вторую или третью строку, но то, что я хочу сделать, это в основном сжать изображение, как вы бы через редактор изображений, но в коде python. Есть ли библиотеки для этого в numpy / SciPy?

2 ответов


Да, вы можете установить opencv (это библиотека, используемая для обработки изображений и компьютерного зрения), и используйте cv2.resize


хотя для этого можно использовать только numpy, операция не является встроенной. Тем не менее, вы можете использовать scikit-image (который построен на numpy) для выполнения такого рода манипуляций с изображениями.

scikit-документация по масштабированию изображений здесь.

например, вы можете сделать следующее с вашим изображением:

from skimage.transform import resize
bottle_resized = resize(bottle, (140, 54), anti_aliasing=True)

Это позаботится о таких вещах, как интерполяция, сглаживание и т. д. для тебя.