Программа для выравнивания фотографий


Повышение визуального качества для фотографий документов

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

Слева – исходное изображение, справа – результат увеличения контраста.

Видно, что необходим более сложный алгоритм, учитывающий неравномерность освещения. Попробуем сделать адаптивное увеличение контраста относительно локального среднего значения. Локальное среднее значение вычисляется для каждого пикселя в пределах квадратной окрестности, центром которой он и является. Размер окрестности следует выбирать исходя из ожидаемых размеров букв и толщины штриха. Существуют алгоритмы для быстрого вычисления локальных средних значений, например, интегральная матрица (summed area table). Если перед увеличением контраста из локального среднего вычесть константу, соответствующую оценке уровня шума в изображении, то для простых документов результат может быть вполне удовлетворительным:

Слева – карта «порогов» (уровней яркости), относительно которых происходит увеличение контраста. Справа – результат применения.

Можно также увеличивать контраст относительно среднего значения между локальным минимумом и максимумом.

Все становится гораздо хуже, если документ содержит плоские участки, выворотки, или инвертированный текст, размер букв может отличаться в несколько раз, а рядом с текстом могут находиться фотографии. Вот так выглядит результат на сложной верстке:

Слева – исходное изображение, справа – результат увеличения контраста.

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

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

Предлагаемый алгоритм позволяет построить приемлемую карту порогов для сложных документов. Чтобы учитывать объекты разных размеров на изображении, используется пирамидальное разложение изображения. Схематично этот процесс представлен на рисунке:

Разложение начинается с масштаба исходного изображения. Оно делится на непересекающиеся квадраты размером 2х2 пикселя, в каждом из которых мы получаем значения минимума, максимума и среднего из 4-х пикселей, его составляющих. Далее из этих значений формируем три изображения: минимумов, максимумов и средних, которые уменьшены в 2 раза по горизонтали и вертикали относительно исходного. Повторяем процедуру и раскладываем полученные изображения в пирамиды до уровня, на котором размер ещё составляет не менее 2 пикселей по горизонтали и вертикали.

При помощи пирамидального разложения мы получаем значения минимумов, максимумов и средних для исходных участков изображения, соответствующих различным масштабам его представления. Типичные изображения документов содержат 9-12 уровней разложения.

Алгоритм построения карты порогов на основе пирамидального разложения состоит в следующем:

  1. На нижнем уровне пирамидального разложения, где изображение состоит всего из нескольких пикселей, инициализируем карту порогов с использованием любой из двух гипотез:
    • локальное среднее значение этого участка изображения (т.е. яркость пикселя из пирамиды средних)
    • среднее между локальным минимумом и максимумом (среднее по яркости 2-х пикселей, взятых из пирамид минимумов и максимумов).
  2. Переходим на следующий уровень разложения, увеличивая карту порогов в 2 раза по горизонтали и вертикали с применением интерполяции со свертками [1 3], [3 1].
  3. В каждом пикселе на новом уровне пирамидального разложения вычисляем разницу между значением пикселя из пирамиды максимумов и значением из пирамиды минимумов. Если эта разница не превосходит шумовой порог, считаем, что полезного сигнала в этом участке изображения нет, причем как на этом, так и на последующих уровнях пирамидального разложения. Следовательно, значение порога, полученного на предыдущем уровне разложения, можно оставить без изменений. В противном случае вычисляем новое, уточненное значение порога, исходя из смеси двух гипотез, 1а и 1б.
  4. Шаги 2 и 3 повторяем до тех пор, пока не достигнем такого уровня разложения, на котором участки изображения, соответствующие пикселям в пирамиде, ещё обладают размером, превосходящим самые маленькие буквы, различимые на изображении. Обычно такие буквы имеют размер около 6-10 пикселей, этому соответствует 3-й или 4-й уровень пирамиды.

В результате получаем карту порогов, относительно которой увеличение контраста не приводит к потерям объектов различного размера, кроме того, плоские однородные участки на изображении не содержат шум:

Слева – карта порогов, справа – результат увеличения контраста относительно неё.

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

Используем своё цветовое пространство, похожее на HSL, но вместо яркости L будем работать с компонентой Y в цветовом пространстве YCbCr.

Для серого изображения контраст увеличивается так: Y’ = k(Y – T) + T, где Т – значение яркости для этого же пикселя из карты порогов, Y и Y’ – исходное и получаемое значение яркости пикселя, k – коэффициент увеличения контраста, обычно его значение лежит в диапазоне от 3 до 6.

Для пикселей, у которых насыщенность S велика, мы будем часто получать неверный цвет, так как диапазон допустимых значений для цветовых компонент ограничен. Поэтому для цветного изображения коэффициент k в этой формуле необходимо сделать обратно пропорциональным насыщенности цвета. Дополнительные нормировочные коэффициенты несложно подобрать эмпирически.

Для участков со слабой насыщенностью можно, напротив, снижать насыщенность цвета вплоть до 0, подавляя цветовой шум на изображении. Это легко сделать, смешивая значения из цветовых каналов с яркостью в различной пропорции. Также полезно перед увеличением контраста сделать выравнивание баланса белого на изображении по гистограммам каналов R, G, B.

Слева – исходное изображение, справа – результат увеличения контраста с учетом насыщенности цвета.

habrahabr.ru

Scan Tailor. Программа для обработки отсканированных книг

Попалась мне недавно программка Scan Tailor, которая предназначена для автоматической обработки отсканированных книг. С помощью этой программы можно разрезать страницы, если страницы сканировались не по одной, а целыми разворотами, можно исправить наклоны страниц, если они криво лежали в сканере, и провести еще некоторые полезные обработки.

Программа является бесплатной, да еще и с открытыми кодами, если версия под Винду, а можно из исходников скомпилить и под Линух. Официальный сайт — http://scantailor.sourceforge.net/.

Книжки сканирую я, к счастью, не часто, а вот обрабатывать уже отсканированные кем-то иногда приходится, в основном чтобы разрезать отсканированные развороты страниц на отдельные страницы. Описать программу Scan Tailor я решил на примере такой обработки. Для экспериментов взял первую попавшуюся книжку в формате DJVU с двойными страницами (первой попалась книга Ю.Ю. Ненахова «Чудо-оружие третьего рейха») и для начала преобразовал все страницы в формат TIFF, потому что для Scan Tailor исходными данными являются отсканированные рисунки. Для преобразования DJVU -> TIFF я использовал программу DjvuOCR. В результате у меня получилось 310 файлов TIFF каждый из которых содержал по две страницы.

При запуске Scan Tailor спросил где находится папка с отсканированными файлами, указал на папку с TIFF-ами и создался новый проект. Внешний вид программы видно на следующем скриншоте:

Главное окно программы

Первым этапом обработки идет исправление ориентации страниц. В данном случае этот этап можно пропустить, все страницы расположены в нужной ориентации, но для эксперимента посмотрел сколько по времени программа будет вращать 310 файлов. Оказалось, что на моем компе на AMD 3500+ с гигом оперативки и WinXP + SP2 это заняло пару секунд. Вообще программа за все время работы не занимала больше 50 МБ оперативки.

Вторым этапом идет разрезка страниц. Scan Tailor автоматически пытается определить границы между страницами и в большинстве случаев ей это удается.

Зарзезка страниц

Но даже если она и ошибается, то за ней можно исправить огрехи, перемещая линию, разделяющую страницы. Причем программа даже может разделять страницы, если они отсканированы под углом. На следующем скриншоте это хорошо видно, заодно видно как Scan Tailor немного промахнулся:

Еще парочка промахов:

Разрезка страниц заняла чуть больше двух минут, а если точнее 2 минуты и 18 секунд, и на 310 разворотов программа ошиблась 14 раз, что, ИМХО, не так уж и плохо. На выходе получилось 620 одинарных страниц.

После этого наступает черед компенсации наклона. Программа просматривает все страницы и разворачивает их так, чтобы текст был строго горизонтально. Тоже это происходит автоматически, но при желании можно и вручную повращать страницы. Для удобства на отсканированные страницы при этом накладывается «листик в клеточку».

Компенсация наклона заняла полторы минуты и вмешиваться после автоматической коррекции не пришлось, программа отработала этот этап просто замечательно.

Четвертым этапом обработки идет определение полезной области, чтобы отсечь лишние пустые места. Это довольно долгий процесс, который для 620 страниц занял 22 минуты. Здесь программа тоже сработала без ошибок.

На пятом этапе задается так называемый макет страницы, то есть какого размера должны быть поля у отсканированного текста и выравнивание на странице. На следующем скриншоте я установил слева и справа нулевые поля (все-равно они остались от исходных отсканированных страниц, зачем их еще увеличивать), а по вертикали добавил по 5 мм.

Эта операция заняла несколько секунд.

И, наконец, на последнем, шестом этапе, происходит вывод результирующих файлов. Здесь можно задать некоторые обработки вроде удаления пятен. В результате программа создала папку out, куда сохранила полученные файлы тоже в формате TIFF. Поменять выходной формат нельзя. В результате получились файлы с именами вида XXXX_filename.tiff, где filename.tiff — изначальное имя каждого файла, а XXXX — порядковый номер страницы.

Это была самая долгая операция, она заняла 35 минут.

Итого. Мне программа очень даже понравилась, интерфейс работает шустро, на сколько быстро работают алгоритмы обработки сказать трудно, потому что мне не с чем сравнивать, с подобными программами я сталкиваюсь впервые. Обработать 620 страничную книгу удалось чуть больше, чем за час. Для сравнения закачал в обменник исходную книгу и ее же после обработки. Не обращайте внимания, что там не хватает пары страниц в 20-ых страницах, это не я их вырвал, это так и было. 🙂

Программа активно развивается, последняя на данный момент версия вышла 26 апреля этого года, автор принимает пожелания и сообщения об ошибках, в том числе и на форуме ru-board.

В Scan Tailor удобно, что если во время обработки увидел косяк, пропущенный на предыдущем шаге, то можно вернуться и исправить. Следующие шаги придется переделывать только для измененных страниц. Жаль, что программа сама не понимает формат DJVU, но это не такая уж и проблема преобразовать из/в DJVU сторонними программами. Хотя еще хотелось бы уметь открывать и сохранять PDF. Но, к сожалению, во время работы программа у меня пару раз вылетала, поэтому надо сохранять проект почаще. А в целом очень удобная софтина.

Еще раз напомню ссылку на официальный сайт — http://scantailor.sourceforge.net/.

jenyay.net

Программа Для Выравнивания Фотографий - communicationstatya

Выравнивание светлых участков и теней. Множество настраиваемых параметров. Улучшайте качество картинки как профи! Простая и удобная программа для обработки фото. Обрабатывайте фотографии в свое удовольствие: все, что вам нужно, чтобы превратить.

Как выровнять горизонт на фотографии. Неровный горизонт - это один из самых распространенных недостатков, свойственный многим фотографиям.

  1. Для того, чтобы выровнять горизонт на фотографии выбираем раздел меню Изображение > Выравнивание горизонта. В открывшемся окне необходимо провести наклонную вдоль линии горизонта и нажать 'OK'. Таким образом, всего лишь одно несложное действие в программе.
  2. Обработка фото – это просто, если есть нужная программа! Автокоррекция изображений; Ручная цветокоррекция; Выравнивание светлых участков и.
  3. Редактор фотографий FOTOR является бесплатным инструментом.

Автоматическое кадрирование и выравнивание изображений. Программное средство Crop and Straighten (Кадрировать и выровнять) появилось еще в предыдущей версии программы Photoshop. Откройте в Photoshop фотографию, которую необходимо выровнять. Программа позволяет с легкостью исправить неровный горизонт и. Набор программ для редактирования фотографий. В этом каталоге вы также можете найти программы для наложения рамок, применения таких эффектов, как старое фото с царапинами, черно-белое фото, мозаика и т.д.

Глаз человека улавливает отклонение даже на несколько градусов, мы сразу замечаем, что фотография смотрится неестественно. Даже если мы не сразу понимаем, что нужно всего лишь выровнять горизонт на фотографии, осознание того, что фотография .

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

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

В открывшемся окне необходимо провести наклонную вдоль линии горизонта и нажать . Таким образом, всего лишь одно несложное действие в программе.

Используйте инструмент «Рамка» для кадрирования и выравнивания фотографий в Photoshop. Инструмент «Рамка» также предоставляет интуитивные методы выравнивания фотографии при кадрировании.

communicationstatya.weebly.com

Выравнивание горизонта

Автор Ирина Сподаренко. Ссылка на статью и автора обязательна.

В этом простом уроке для начинающих фотошоперов рассматриваются 2 простых способа выравнивания горизонта на фотографии.

Линия горизонта присутствует далеко не на каждом пейзажном снимке, а в помещении это понятие вообще бессмысленно. Но термин «завален горизонт» применяют для обозначения любого явно видимого на фотографии перекоса.

Если камера в момент съемки находилась не строго горизонтально, а под каким-то углом, то кажется, что вертикальные объекты как бы заваливаются в сторону. Объекты, которые просто обязаны быть горизонтальными, наклонены под каким-то углом. Например, поверхность воды в аквариуме всегда горизонтальна, цепь, к которой подвешен тяжелый светильник, всегда вертикальна. О таких недостатках на фотографиях говорят, что заметен «завал горизонта».

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

Программа Photoshop предоставляет различные возможности устранения перекоса фотографии, рассмотрим два самых простых способа выравнивания горизонта.

Откройте изображение в фотошопе. На фотографии явно видно, что линия горизонта, где море переходит в небо, скошена.

1 способ.

Выровнять фотографию можно простым поворотом на нужный угол. Чтобы не поворачивать наугад, воспользуйтесь инструментом Направляющая.  Зацепите курсором верхнюю линейку и тяните ее вниз (если линеек нет, включите их View (Вид) > Rulers (Линейки)). Линейка, конечно же, останется на месте, а за курсором потянется горизонтальная направляющая какого-нибудь яркого цвета.

Дотяните ее до линии горизонта. Она покажет, как должен быть расположен горизонт.

В открытом документе есть только один слой - фоновый. Чтобы его можно было поворачивать, кликните на нем 2 раза в панели Layers (Слои) или сделайте дубликат этого слоя и работайте в этой копии.

Нажмите комбинацию Ctrl+T или выполните команду Edit (Редактирование) > Transform (Трансформация)> Rotate (Поворот) и поверните картинку так, чтобы горизонт выровнялся относительно направляющей.

По краям появились небольшие области фона. Их надо обрезать. Выберите инструмент Crop (Рамка) в панели инструментов Photoshop и обрежьте края. Как обрезать края фотографии.

Результат:

2 способ.

Этот способ выравнивания горизонта еще проще. Выберите инструмент Crop (Рамка или Кадрирование) в панели инструментов Photoshop и произвольно выделите рамкой часть изображения так, чтобы нижняя граница рамки оказалась близко к линии горизонта.

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

Этот угол поворота больше не изменяйте. Растягивайте рамку за середины сторон до краев холста, но не за его пределы. Если вы хотите сохранить пропорции изображения, нажмите и удерживайте клавишу Shift.

Нажмите Enter для завершения поворота и обрезки.

Эти простые способы повернуть изображение и выровнять горизонт пригодятся для исправления любых фотографий, где допущен перекос и объекты выглядят неестественно.

www.takpro100.net.ua


Смотрите также