Нормализовать гистограмму (яркость и контраст) набора изображений с помощью библиотеки изображений Python (PIL)

У меня есть сценарий, который использует API Карт Google для загрузки последовательности квадратных спутниковых изображений одинакового размера и генерирует PDF-файл. Изображения необходимо повернуть заранее, и я уже делаю это с помощью PIL.

Я заметил, что из-за разного освещения и условий местности некоторые изображения слишком яркие, другие слишком темные, и итоговый PDF-файл немного выглядит. уродливые, с далеко не идеальными условиями чтения «в поле» (то есть катание на горных велосипедах в отдаленных районах, где я хочу напечатать эскизы конкретных перекрестков).

(РЕДАКТИРОВАТЬ) Цель состоит в том, чтобы закончить все изображения с такой же видимой яркостью и контрастом. Таким образом, слишком яркие изображения необходимо затемнить, а темные - осветлить. (кстати, я когда-то использовал imagemagick autocontrast , или auto-gamma , или equalize , или autolevel , или что-то в этом роде , с интересными результатами в медицинских изображениях, но я не знаю, как сделать что-либо из них в PIL).

Я уже использовал некоторые коррекции изображения после преобразования в оттенки серого (некоторое время назад у меня был принтер с оттенками серого), но результаты не были тоже не годится. Вот мой код градаций серого:

#!/usr/bin/python

def myEqualize(im)
    im=im.convert('L')
    contr = ImageEnhance.Contrast(im)
    im = contr.enhance(0.3)
    bright = ImageEnhance.Brightness(im)
    im = bright.enhance(2)
    #im.show()
    return im

Этот код работает независимо для каждого изображения. Интересно, не лучше ли сначала проанализировать все изображения, а затем «нормализовать» их визуальные свойства (контраст, яркость, гамму и т. Д.).

Кроме того, я думаю, что необходимо провести некоторый анализ изображения (гистограмма ?), чтобы применить индивидуальную коррекцию в зависимости от каждого изображения, а не одинаковую коррекцию для всех из них (хотя любая функция «улучшения» неявно учитывает исходные условия).

У кого-нибудь была такая проблема и / или знает ли хорошая альтернатива сделать это с цветными изображениями (без оттенков серого)?

Любая помощь будет принята с благодарностью, спасибо за чтение!

11
задан heltonbiker 23 August 2011 в 19:49
поделиться