Изменение размера изображения в Python: PIL, OpenCV, scikit-image, imageio и Wand

Вот несколько способов изменения размера изображений в Python:

  1. Использование библиотеки PIL (библиотеки изображений Python):

    • Установка PIL: подушка для установки pip
    • Пример кода:

      from PIL import Image
      
      def resize_image(input_image, output_image, size):
       with Image.open(input_image) as image:
           image.thumbnail(size)
           image.save(output_image)
      
      # Usage:
      resize_image('input.jpg', 'output.jpg', (300, 200))
  2. Использование библиотеки OpenCV:

    • Установите OpenCV: pip install opencv-python
    • Пример кода:

      import cv2
      
      def resize_image(input_image, output_image, size):
       img = cv2.imread(input_image)
       img_resized = cv2.resize(img, size)
       cv2.imwrite(output_image, img_resized)
      
      # Usage:
      resize_image('input.jpg', 'output.jpg', (300, 200))
  3. Использование библиотеки scikit-image:

    • Установить scikit-image: pip install scikit-image
    • Пример кода:

      from skimage import io, transform
      
      def resize_image(input_image, output_image, size):
       img = io.imread(input_image)
       img_resized = transform.resize(img, size)
       io.imsave(output_image, img_resized)
      
      # Usage:
      resize_image('input.jpg', 'output.jpg', (300, 200))
  4. Использование библиотеки imageio:

    • Установить imageio: pip install imageio
    • Пример кода:

      import imageio
      
      def resize_image(input_image, output_image, size):
       img = imageio.imread(input_image)
       img_resized = imageio.imresize(img, size)
       imageio.imsave(output_image, img_resized)
      
      # Usage:
      resize_image('input.jpg', 'output.jpg', (300, 200))
  5. Использование библиотеки Wand (требуется ImageMagick):

    • Установить Wand: pip install Wand
    • Пример кода:

      from wand.image import Image
      
      def resize_image(input_image, output_image, size):
       with Image(filename=input_image) as img:
           img.resize(*size)
           img.save(filename=output_image)
      
      # Usage:
      resize_image('input.jpg', 'output.jpg', (300, 200))