Transformacje

Przetwarzanie obrazów w Pythonie

Rebeca Gonzalez

Data Engineer

Po co transformować obrazy?

  • Przygotowanie obrazów dla modeli ML do klasyfikacji
  • Optymalizacja i kompresja obrazów
  • Zachowanie proporcji obrazów

Przetwarzane i pomniejszane zdjęcie kota

Przetwarzanie obrazów w Pythonie

Obracanie

2 psy bawiące się, idące

Zdjęcie 2 psów obrócone o 90 stopni w prawo

Przetwarzanie obrazów w Pythonie

Obracanie

2 psy bawiące się, idące

2 psy bawiące się obrócone o 90 stopni w lewo

Przetwarzanie obrazów w Pythonie

Obracanie w prawo

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')

Oryginalne zdjęcie psów obok obrotu o 90 stopni w prawo

Przetwarzanie obrazów w Pythonie

Obracanie w lewo

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')

Oryginalne zdjęcie psów obok obrotu o 90 stopni w lewo

Przetwarzanie obrazów w Pythonie

Skalowanie

Oryginalne zdjęcie 2 psów (3000 px) obok pomniejszonego (800 px)

Przetwarzanie obrazów w Pythonie

Skalowanie

Pomniejszanie
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')
Przetwarzanie obrazów w Pythonie

Skalowanie

Oryginalne zdjęcie 2 psów (3000 px) obok pomniejszonego (800 px)

Przetwarzanie obrazów w Pythonie

Aliasing w obrazach cyfrowych

Litera A bez aliasingu obok litery A z aliasingiem

Przetwarzanie obrazów w Pythonie

Aliasing w obrazach cyfrowych

Przeskalowane zdjęcie 2 psów z aliasingiem obok wersji bez aliasingu

Przetwarzanie obrazów w Pythonie

Zmiana rozmiaru

Oryginalne zdjęcie (3000 px) obok zmienionego rozmiaru (800 px)

Przetwarzanie obrazów w Pythonie

Zmiana rozmiaru

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')
Przetwarzanie obrazów w Pythonie

Zmiana rozmiaru

Oryginalne zdjęcie 2 psów (3000 px) obok zmienionego rozmiaru bez zachowania proporcji

Przetwarzanie obrazów w Pythonie

Proporcjonalna zmiana rozmiaru

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')
Przetwarzanie obrazów w Pythonie

Proporcjonalna zmiana rozmiaru

Oryginalne zdjęcie 2 psów (3000 px) obok proporcjonalnie zmienionego rozmiaru (800 px)

Przetwarzanie obrazów w Pythonie

Czas na ćwiczenia!

Przetwarzanie obrazów w Pythonie

Preparing Video For Download...