JavaRush /Курсы /Python SELF /Работа с цветом и коррекция изображений

Работа с цветом и коррекция изображений

Python SELF
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")

Практическое применение коррекции цвета

  • Обработка фотографий: Регулировка яркости и контрастности может улучшить видимость деталей на фотографии, а фильтры помогут сделать изображение более выразительным.
  • Подготовка изображений для анализа: Преобразование в черно-белое, повышение резкости и контрастности помогут сделать изображение более четким и пригодным для анализа.
  • Стилизация изображений: Изменение насыщенности и применение фильтров позволяют создать уникальные стили и эффекты для дизайнерских проектов.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vlad Tagunkov Уровень 55
20 января 2025
скажите ну почему объясняя работу с изображениями вы не вставили ни одного примера на страницу? ну это же картинки - можно легко показать. кстати по всем канонами компьютерного зрения используется вот эта картинка Каноническая картинка для компьютерного зрения