Трансформации

Обработка изображений в Python

Rebeca Gonzalez

Data Engineer

Зачем трансформировать изображения?

  • Подготовка изображений для моделей машинного обучения
  • Оптимизация и сжатие изображений
  • Сохранение пропорций изображений

Изображение кота, проходящее обработку и уменьшение

Обработка изображений в Python

Поворот

2 собаки играют, идут

Фото 2 играющих собак, повёрнутое на 90 градусов по часовой стрелке

Обработка изображений в Python

Поворот

2 собаки играют, идут

2 играющие собаки, повёрнутые на 90 градусов против часовой стрелки

Обработка изображений в Python

Поворот по часовой стрелке

from skimage.transform import rotate

# Rotate the image 90 degrees clockwise image_rotated = rotate(image, -90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees clockwise')

Оригинальное фото собак рядом с повёрнутым

Обработка изображений в Python

Поворот против часовой стрелки

from skimage.transform import rotate

# Rotate an image 90 degrees anticlockwise image_rotated = rotate(image, 90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees anticlockwise')

Оригинальное фото собак рядом с повёрнутым на 90 градусов

Обработка изображений в Python

Масштабирование

Оригинальное изображение 2 собак (3000 пикселей) рядом с уменьшенным (800 пикселей)

Обработка изображений в Python

Масштабирование

Уменьшение масштаба
from skimage.transform import rescale

# Rescale the image to be 4 times smaller image_rescaled = rescale(image, 1/4, anti_aliasing=True, multichannel=True)
show_image(image, 'Original image') show_image(image_rescaled, 'Rescaled image')
Обработка изображений в Python

Масштабирование

Оригинальное изображение 2 собак (3000 пикселей) рядом с уменьшенным (800 пикселей)

Обработка изображений в Python

Алиасинг в цифровых изображениях

Изображение буквы A без алиасинга рядом с изображением буквы A с алиасингом

Обработка изображений в Python

Алиасинг в цифровых изображениях

Масштабированное изображение 2 играющих собак с алиасингом рядом с изображением без алиасинга

Обработка изображений в Python

Изменение размера

Оригинальное изображение (3000 пикселей) рядом с изменённым по размеру (800 пикселей)

Обработка изображений в Python

Изменение размера

from skimage.transform import resize

# Height and width to resize height = 400 width = 500
# Resize image image_resized = resize(image, (height, width), anti_aliasing=True)
# Show the original and resulting images show_image(image, 'Original image') show_image(image_resized, 'Resized image')
Обработка изображений в Python

Изменение размера

Оригинальное изображение 2 собак (3000 пикселей) рядом с изменённым по размеру, непропорциональным

Обработка изображений в Python

Пропорциональное изменение размера

from skimage.transform import resize

# Set proportional height so its 4 times its size height = image.shape[0] / 4 width = image.shape[1] / 4
# Resize image image_resized = resize(image, (height, width), anti_aliasing=True)
show_image(image_resized, 'Resized image')
Обработка изображений в Python

Пропорциональное изменение размера

Оригинальное изображение 2 собак (3000 пикселей) рядом с пропорционально изменённым (800 пикселей)

Обработка изображений в Python

Давайте потренируемся!

Обработка изображений в Python

Preparing Video For Download...