JavaRush /Курси /Python SELF UA /Робота з кольором і корекція зображень

Робота з кольором і корекція зображень

Python SELF UA
Рівень 45 , Лекція 4
Відкрита

1. Зміна колірного режиму

Зображення може бути представлене в різних колірних режимах, таких як:

  • RGB: Стандартний кольоровий режим.
  • L: Відтінки сірого.
  • CMYK: Використовується в друку.
  • RGBA: RGB з альфа-каналом (для прозорості).

Перетворити зображення в інший колірний режим можна за допомогою методу convert().

Перетворення в відтінки сірого

Щоб зробити зображення чорно-білим, використовуйте колірний режим L:


# Перетворення в відтінки сірого
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

Цей код перетворює зображення в чорно-біле і зберігає його у файл gray_example.jpg. Це корисно, якщо ви хочете створити чорно-білий стиль або підготувати зображення для аналізу, де важливі лише рівні яскравості.

Перетворення в режим CMYK

CMYK часто використовується в поліграфії. Перетворення зображення в цей режим може бути корисним, якщо зображення призначене для друку.


# Перетворення в CMYK
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")

2. Застосування фільтрів до зображення

Pillow надає кілька вбудованих фільтрів, які можна використовувати для створення різних ефектів. Ці фільтри знаходяться в модулі ImageFilter.

Застосування фільтрів розмиття, контуру і різкості


from PIL import ImageFilter

# Застосування фільтра розмиття
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")

# Застосування фільтра контурів
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")

# Застосування фільтра різкості
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")

Тут ми застосовуємо три різних фільтри:

  • BLUR: Розмиття зображення, що корисно для створення м'яких ефектів.
  • CONTOUR: Виділення контурів об'єктів на зображенні.
  • SHARPEN: Підвищення різкості, що робить зображення чіткішим.

Інші фільтри

Деякі інші корисні фільтри в Pillow:

  • DETAIL: Підкреслює деталі.
  • EDGE_ENHANCE: Підсилює краї.
  • SMOOTH: Пом'якшує зображення.

# Застосування фільтра для підсилення країв
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")

3. Налаштування яскравості, контрасту, різкості і насиченості

Пакет ImageEnhance у Pillow дозволяє легко змінювати яскравість, контрастність, різкість і кольорову насиченість зображення.

Налаштування яскравості

Для зміни яскравості використовуйте клас ImageEnhance.Brightness. Коефіцієнт яскравості може бути будь-яким числом: 1.0 — початкова яскравість, менше 1.0 — затемнення, більше 1.0 — збільшення яскравості.


from PIL import ImageEnhance

# Зміна яскравості
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5)  # Збільшення яскравості на 50%
brighter_image.save("brighter_example.jpg")

Налаштування контрасту

Контрастність робить світлі області світлішими, а темні — темнішими. Для налаштування контрастності використовуйте ImageEnhance.Contrast.


# Зміна контрасту
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5)  # Збільшення контрасту на 50%
higher_contrast_image.save("higher_contrast_example.jpg")

Налаштування різкості

Різкість визначає, наскільки чіткими будуть краї об'єктів на зображенні. Для налаштування різкості використовується ImageEnhance.Sharpness.


# Зміна різкості
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0)  # Збільшення різкості в 2 рази
sharper_image.save("sharper_example.jpg")

Значення 1.0 зберігає початкову різкість, менше 1.0 робить зображення більш розмитим, а більше 1.0 — більш різким.

Налаштування кольорової насиченості

Кольорова насиченість робить кольори більш або менш інтенсивними. Для зміни насиченості використовуйте ImageEnhance.Color.


# Зміна насиченості
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5)  # Збільшення насиченості на 50%
more_vibrant_image.save("more_vibrant_example.jpg")

4. Порівняння методів корекції зображення

Метод Опис Застосування
convert("L") Перетворення зображення в чорно-білий режим Ч/б стиль, аналіз відтінків
ImageFilter Застосування фільтрів для розмиття, різкості і т.д. Ефекти накладання, виділення об'єктів
ImageEnhance.Brightness Регулювання яскравості зображення Освітлення або затемнення
ImageEnhance.Contrast Зміна контрастності Покращення видимості деталей
ImageEnhance.Sharpness Зміна різкості Підкреслення країв, збільшення чіткості
ImageEnhance.Color Налаштування кольорової насиченості Створення яскравих, насичених зображень

5. Приклади

Приклад повної обробки зображення

Давайте об'єднаємо все вищезгадане і створимо код, який виконує кілька етапів кольорокорекції, застосовуючи фільтри, змінюючи яскравість, контрастність і насиченість.


from PIL import Image, ImageEnhance, ImageFilter

# Завантаження зображення
image = Image.open("example.jpg")

# Перетворення в чорно-білий режим
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

# Застосування фільтра різкості
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")

# Збільшення яскравості
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3)  # На 30% яскравіше
brighter_image.save("brighter_gray_example.jpg")

# Збільшення контрастності
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5)  # На 50% контрастніше
higher_contrast_image.save("final_example.jpg")

Практичне застосування корекції кольору

  • Обробка фотографій: Регулювання яскравості і контрастності може покращити видимість деталей на фотографії, а фільтри допоможуть зробити зображення більш виразним.
  • Підготовка зображень для аналізу: Перетворення в чорно-біле, підвищення різкості і контрастності допоможуть зробити зображення більш чітким і придатним для аналізу.
  • Стилізація зображень: Зміна насиченості і застосування фільтрів дозволяють створити унікальні стилі та ефекти для дизайнерських проєктів.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ