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")
Практичне застосування корекції кольору
- Обробка фотографій: Регулювання яскравості і контрастності може покращити видимість деталей на фотографії, а фільтри допоможуть зробити зображення більш виразним.
- Підготовка зображень для аналізу: Перетворення в чорно-біле, підвищення різкості і контрастності допоможуть зробити зображення більш чітким і придатним для аналізу.
- Стилізація зображень: Зміна насиченості і застосування фільтрів дозволяють створити унікальні стилі та ефекти для дизайнерських проєктів.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ