Рубрики
Без рубрики

Усиление фотографий с Python

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Иногда, когда вы делаете фотографию, вы найдете, что это не совсем то, что вы хотели. Картина выглядит великолепно, но это просто слишком темно. Или это немного размыто, и вам нужно добавить резкость. Проблема резкости не в том же духе не так плохо, потому что многие камеры автоматически добавляют резкость для вас после того, как они сделают фото.

Во всяком случае, в этой статье мы узнаем, как сделать следующее:

  • Как настроить яркость фото
  • Как изменить контраст вашего изображения
  • Как заточить фото

Первое, что вам нужно, это Пакет подушек который вы можете установить, используя PIP:

pip install Pillow

Теперь, когда у нас установлена подушка, мы можем начать!

Изменение яркости

Лично, я думаю, что это фото выглядит хорошо, но для демонстрационных целей, давайте постараемся укрепить эту фотографию в любом случае. Ключ к улучшению фотографий использует подушку Imageenhance модуль. Давайте взглянем:

from PIL import Image
from PIL import ImageEnhance


def adjust_brightness(input_image, output_image, factor):
    image = Image.open(input_image)
    enhancer_object = ImageEnhance.Brightness(image)
    out = enhancer_object.enhance(factor)
    out.save(output_image)

if __name__ == '__main__':
    adjust_brightness('lighthouse.jpg',
                      'output/lighthouse_darkened.jpg',
                      1.7)

Здесь мы импортируем куски, которые нам нужны из подушки, а затем открываем входное изображение в нашей функции. Далее нам нужно создать объект «Enhancer». В этом случае мы используем ImageenHance Яркость Класс и пропустите наш объект изображения. Далее мы называем Улучшить () Способ и дать ему фактор повышения. Согласно подушке Документация , вам нужно иметь фактор больше 1,0, чтобы добавить яркость на вашу фотографию. Если вы просто даете ему равно 1,0 раза, то он вернет исходный образ без изменений.

Если вы запустите этот код, вы получите что-то подобное:

Вы также можете пройти коэффициент улучшения ниже 1,0 до 0,0. Если вы пройдете до 0,0, вы получите совершенно черное изображение в соответствии с документацией. Просто для удовольствия попробуйте изменить фактор улучшения в коде выше 0,7. Если вы сделаете, то вы получите следующий результат:

Теперь давайте попробуем добавить некоторую контраст на изображение!

Настройка контрастирования вашего изображения

Я сделал несколько действительно темных фотографий раньше и смог сохранить их, добавив яркость и контрастность с фотографиями. В этом примере мы добавим только контраст с этой прекрасной фотографией гусеницы. Однако вы можете легко добавить яркости, объединив следующий код с предыдущим примером:

from PIL import Image
from PIL import ImageEnhance

def adjust_contrast(input_image, output_image, factor):
    image = Image.open(input_image)
    enhancer_object = ImageEnhance.Contrast(image)
    out = enhancer_object.enhance(factor)
    out.save(output_image)

if __name__ == '__main__':
    adjust_contrast('caterpillar.jpg',
                    'output/caterpillar_more_contrast.jpg',
                    1.7)

Этот код очень похож на функцию осветления. Единственное отличие состоит в том, что здесь мы используем Контрастность Класс из модуля ImageenHance вместо Яркость класс. Когда я запустил этот код, я получил следующее улучшение:

Все классы в модуле ImageenHancance ведут себя таким же образом. Если вы случайно попробуйте пропустить его значение усиления 1,0, вы просто получите оригинальное изображение без добавленных настроек. Но если вы перейдете к стоимости от 0,0 – 1,0, вы уменьшите контрастность. Вы можете играть с фактором улучшения самостоятельно, чтобы посмотреть, какие изменения вы можете сделать на свои собственные изображения. Я попытался изменить его до 0,7 и оказался этим:

Теперь мы готовы узнать о заточке фотографий!

Изменение резкости фотографий

Я редко обостряет размытые фотографии больше, потому что я редко нашел это полезным. Однако вы можете заточить фотографию, чтобы она выглядела по-разному. Давайте посмотрим, как вы можете сделать это с Python и подушкой:

from PIL import Image
from PIL import ImageEnhance


def adjust_sharpness(input_image, output_image, factor):
    image = Image.open(input_image)
    enhancer_object = ImageEnhance.Sharpness(image)
    out = enhancer_object.enhance(factor)
    out.save(output_image)


if __name__ == '__main__':
    adjust_sharpness('mantis.png',
                     'output/mantis_sharpened.jpg',
                     1.7)

Еще раз, единственное изменение – использовать ImageenHance Резкость класс вместо одного из других вариантов. Также как и прежде, нам нужно использовать фактор улучшения, который больше 1,0, чтобы добавить резкость. Вот результат:

Я на самом деле, как этот оказался. Вы также можете размыть изображение, используя фактор улучшения, который составляет менее 1,0, но я думал, что только что сделан для довольно скучного изображения. Не стесняйтесь играть с ценностями, хотя.

Обертывание

Пакет подушек имеет так много аккуратных функций для редактирования и повышения ваших фотографий с использованием языка программирования Python. Это очень быстро, чтобы попробовать. Вы должны дать эти сценарии спину и играть с факторами улучшения, чтобы увидеть, что вы можете сделать сами. Есть также Цвет Класс, который я не охватил здесь, что вы также можете использовать для улучшения ваших фотографий. Весело и счастливое кодирование!

Связанное чтение