Как исправить размазанное фото на телефоне
Photo Doctor – восстановление размытых и смазанных изображений за 3 простых шага
Фотокамеры в наших мобильных телефонах и гаджетах давно стали обыденностью. Количество снимков, сделанных на мобильные устройства, растет вслед за увеличением количества пикселей и качества фотографий.
Мы настолько привыкли к фотоаппаратам в наших мобильных устройствах, что все чаще памятные и важные моменты нашей жизни сохраняем на мобильные устройства.
Порой события разворачиваются настолько стремительно, что у фотографа не остается времени на тщательную подготовку к снимку и в результате вместо четкой и красивой фотографии получается размытое или смазанное изображение.
В этом случае на помощь пользователю придет приложение Photo Doctor, способное за несколько простых шагов избавить фотографию от эффекта размытия и даже улучшить ее четкость.
Избавление памятной фотографии от дефектов обещает быть несложным и достаточно простым – необходимо выбрать фотографию из альбома на мобильном устройстве, правильно определить характер дефекта на фотографии и последовательно выбирать наилучшие варианты восстановленного изображения.
На практике сложный процесс восстановления фотографии потребует немного терпения и усердия. Для начальной тренировки неопытного пользователя разработчики предусмотрели несколько демонстрационных фотографий в приложении.
? Результаты восстановления примеров фотографий впечатляют, но верить разработчикам на слово не хотелось 🙂
Поэтому я решил проверить работу приложения на собственной фотографии, клавиатуры ноутбука с явным эффектом «дрожащих рук», будто фотография была сделана в движении.
? Для запуска процесса восстановления фотографии пользователю необходимо определить тип искажения изображения – «отсутствие фокуса» или «снято в движении».
Правило определения типа искажения довольно простое – если на фотографии виден тянущийся «шлейф» от предметов, просматриваются несколько границ одного объекта или просто фотография имеет выраженную смазанность, то необходимо выбирать «Снято в движении». Если у вас есть ощущение, что на фотографию наложена мутная пленка, то рекомендую попробовать выбрать тип искажения «Без фокуса».
? Определение типа искажения ответственный процесс, поскольку от правильного выбора типа искажения зависит применяемый алгоритм обработки изображения и успех операции по его восстановлению.
Помимо самостоятельного определения типа искажения, пользователю необходимо выбрать область изображения, на которой будет проводится анализ характеристик искажения.
Выбор области изображения необходим для оптимизации времени обработки изображения. Судя по всему обработка изображения целиком потребовала бы очень больших вычислительных ресурсов, которых на мобильных устройствах явно недостаточно. Поэтому для оптимизации времени работы приложения пользователям предлагается определить параметры искажения для последующего восстановления изображения целиком.
Из личного опыта я рекомендую выбирать ту область для определения параметров искажения, в которую попадёт узнаваемый предмет, буква или в крайнем случае прямая линия. Это нехитрое действие позволит в дальнейшем существенно облегчить задачу по выбору лучших вариантов восстановления.
Должен отметить, что подготовка примеров даже для небольшого участка изображения занимает на моем iPhone 4 не менее 1 минуты времени. Но ради результата можно и потерпеть 🙂
? После окончания обработки выбранного участка изображения пользователю предлагается выбрать наилучший вариант восстановления изображения. Делается это всего лишь дважды и после этого приложение приступает к применению параметров для восстановления искажения на большом изображении.
? Вот он, итоговый результат!
? И для наглядности сравним два изображения:
? В качестве бонуса для пользователей, которые так и не сумели восстановить свои ценные фотографии при помощи приложения, в одном из примеров разработчики заложили адрес электронной почты. Его несложно привести в читабельный вид в самом приложении и разработчики обещают помочь в восстановлении присланной на этот мэйл фотографии.
Нашли опечатку? Выделите текст и нажмите Ctrl+Enter
Как сделать размытое фото более чётким?
Расфокусированные фотографии становятся всё более популярными по некоторым причинам, но не учитывая так всеми любимые фильтры как в Instagram, они обычно только раздражают. Допустим, вы постарались снять уникальное в своем роде семейное видео только лишь для того, чтобы обнаружить, что изображение размыто и дрожит.
Оказывается, существуют программы, которые могут улучшить резкость фотографий без возни в Photoshop. Хотя в большинстве случаев из размытого фото или видео никогда не сделать резкую и красивую копию, эти инструменты можно использовать для восстановления важных деталей и вернуть резкость, чтобы сделать материал чуть более качественным.
SmartDeblur
SmartDeblur — полностью бесплатное приложение, которым можно пользоваться сколько угодно раз, и во многих отношениях оно дружелюбнее, чем Focus Magic. С другой стороны, его работа не отличается стабильностью (программа зависала несколько, пока я ее тестировал, особенно при загрузке слишком тяжелых изображений), а результаты, которые выдает программа, могут быть разными.
Есть несколько полезных возможностей в SmartDeblur — наличие zoom-опции, а также опции Fit To Window (Подстроить под размер окна). Также можно сравнивать результаты с оригиналом, нажав на «Show Original». Предобзор доступен для всего изображения. Программа содержит образец на котором можно научиться увеличивать резкость, чтобы прочесть размытый текст.
Испытав инструмент на своих собственных фотографиях, я обнаружил, что он не работает так же хорошо как Focus Magic. Но мне удалось получить хорошие результаты с картинкой, содержащей текст.
Пытаясь восстановить потерянные детали, вы почувствуете, будто работаете с CSI, но не ожидайте ничего выдающегося.
Focus Magic
Focus Magic — это нечто большее, чем просто программа увеличения резкости. Согласно заявлениям с их сайта, используются «продвинутые криминалистические деконволюционные технологии, которые буквально, как рукой, снимают размытие». В теории, приложение справляется с расфокусированными изображениями и размытыми видео, восстанавливая потерянные детали. Но действительно ли это работает?
Программа Focus Magic далеко не автоматический инструмент. И это огромный минус, поскольку бесплатная пробная версия позволяет выполнить только 10 операций. После этого нужно будет приобрести полную лицензию, которая стоит 45 долларов. После загрузки изображения вам сперва необходимо решить, будете ли фокусировать, убирать размытие при движении, дефокусировать или очищать изображение от мусора. Потом начинается долгий процесс подстройки параметров.
Поскольку возможно увидеть привью лишь для небольшой области изображения, уходит множество попыток, чтобы достичь хорошего эффекта для всей фотографии.
С помощью приложения можно вернуть резкость изображениям, если у вас есть терпение и деньги.
Blurity
Приложение Blurity в отличие от своих конкурентов обладает несколькими особенностями: очень подробным руководством и самодостаточностью. Под самодостаточностью я понимаю способность программы взять на себя тяжелую работу по настройке, если того пожелаете. Если знаете, что делаете, можете получить доступ к продвинутым настройкам, но это совсем необязательно.
После прохождения обучения, можно приступать к обработке. Для этого необходимо поместить красный квадрат на область с сильной размытостью и нажать на кнопку Process. В большинстве случаев на этом всё. Если результаты вас не удовлетворяют, можно переместить квадрат в другую область и попытаться снова. Приложение выполняет свою работу хорошо, ему удалось превратить некоторые размытые фотографии во вполне достойные.
Как видите, минусом являются водяные знаки, которые накладываются на все фотографии, которые вы обрабатываете, используя бесплатную версию приложения. Если вам действительно нравится программа и хотите избавиться от водяных знаков, лицензия будет стоить вам 39$.
Выводы
Хотите – верьте, хотите – нет, но я потратил полдня, исследуя данную тему. Попытавшись повысить резкость у множества размытых фото и видео, я осознал одну вещь — лучше сразу снимать хороший материал. Но если по какой-то причине «план А» не сработал, то вышеперечисленные приложения способны выжать кое-что из вашего материала, но это на самом деле зависит от того, чего вы стремитесь достичь.
Как исправить размытое изображение на андроиде
Последнее обновление: 26/08/2020
Далеко не каждый смартфон поддерживает электронную или оптическую стабилизацию изображения, что снижает воздействие тряски в процессе съемки фото. Поэтому в статье мы рассмотрим наиболее эффективные инструменты, что помогут исправить размытое изображения.
Мобильный редактор — Snapseed
Изображения со слабым размытием легко исправляются в мобильных редакторах непосредственно на смартфоне. Для такой цели подойдут фото редакторы с функцией резкости. В качестве примера рассмотрим программу Snapseed.
Приложение разработано компанией Google, что распространяет утилиту без рекламы и встроенных платежей. Программа работает на устройствах с версией Android 4.4 и выше.
Инструкция:
1. Скачайте/запустите приложение.
2. В окне программы нажмите на кнопку «ОТКРЫТЬ».
3. При первом запуске предоставьте доступ на чтение файлов.
5. После загрузки фотографии нажмите на кнопку «ИНСТРУМЕНТ».
6. В развернутом списке выберите инструмент «Резкость».
7. В нижней части экрана нажмите на кнопку регулировки.
8. Выберите регулятор «Резкость».
9. Пользуясь жестом «Щипок» увеличьте снимок при необходимости.
10. Чтобы прибавить или убавить резкость проведите пальцем от левой части экрана к правой части и наоборот. Для применения изменений нажмите на соответствующую кнопку справа.
11. Что бы сохранить снимок нажмите на кнопку «Экспорт».
12. На следующей странице выберите варианты сохранения фотографии.
Настольный редактор — Photoshop
Исправление размытых фотографий с помощью настольных редакторов позволяет достичь лучших результатов. В качестве примера рассмотрим программу Photoshop CS5. Метод актуален и для более поздних версий.
Инструкция:
Загрузите изображение в редактор.
Сверху нажмите на категорию «Фильтр».
В появившемся списке «Усиление резкости».
Затем «Умная резкость».
Подберите наилучшие параметры, руководствуясь предварительным просмотром. Передвигайте регуляторы «Эффект», «Радиус» и т.д.
При подборке оптимальных параметров нажмите на кнопку «ОК». Затем сохраните отредактированное изображение.
Онлайн редактор – fotor
Данный вариант стоит рассмотреть как альтернативу мобильному и настольному приложению. В качестве примера рассмотрим сервис fotor.
Инструкция:
На станице сервиса выберите «Редактировать фото».
Нажмите на вкладку базовое регулирование.
Перетяните ползунок «Четкость» вправо.
После выбора оптимального параметра, сверху нажмите на кнопку «Сохранить».
Далее укажите предпочтительные параметры перед сохранением. А затем нажмите на кнопку «Скачать».
Вывод
В статье подробно описано, как исправить размытое изображение на андроиде. Большинство слабо размытых снимков исправляются непосредственно на смартфоне при помощи мобильных редакторов изображений. Так же в качестве альтернативы подойдет и онлайн редактор. Наилучшие результаты достигаются в настольных приложениях, где доступно исправление размытия всего снимка или только определенного участка. При этом сильно размытее снимки исправить не получится без потери качества и детализации.
А какие вы знаете способы исправления размытых фотографий? Делитесь опытом в комментариях под статьей.
Приложение, которое делает фото четким
Теперь для того, чтобы обработать фото, не нужно быть талантливым дизайнером и владеть мощными инструментами, вроде Adobe Photoshop. Достаточно иметь в руках смартфон или планшет и умение пользоваться простым софтом, управление которым часто сводится к нажатию пары кнопок. Поэтому каждый может наложить на фотографию тот или иной фильтр и так или иначе изменить изображение.
Наложить фильтр просто. Но вот как его потом убрать если оригинального фото нет в вашем распоряжении? Конечно можно качественно выполнить эту работу с помощью средств того же Adobe Photoshop, однако для этого потребуются определённые навыки. В данный статье мы рассмотрим приложение для улучшения чёткости фото.
Remini — поможет сделать размытое фото более четким
Remini — один из самых популярных инструментов для обработки фото и видео на смартфоне или планшете. Он удобен многообразием своих функций, среди которых, конечно же, есть и удаление эффекта размытия с фото.
Чтобы начать использовать эту программу, установите её на своё устройство и запустите:
Начнётся обработка, которая обычно происходит в течение минуты, но может затянуться на несколько минут. В конце вы увидите обрабатываемое фото, разделённое вертикальной линией — слева от линии оригинальное, справа обработанное. Таким образом вы можете увидеть различия в обработке и оценить качество алгоритма работы приложения.
Как было сказано выше, приложение Remini имеет ряд других полезных функций, которые тоже могут пригодиться. Например, изображение можно повернуть или обрезать, применить цвет к черно-белой картинке и наложить большое количество других эффектов и улучшений на видео и фото.
Владельцы устройств под управлением Android могут скачать Remini здесь, а iOS — здесь.
Sharpen image — приложение, которое сделает фото более четким
Это приложение, которое размытые фото делает более качественными и четкими. Работает Sharpen image на Андроид по более простым алгоритмам, чем Remini, поэтому качество не всегда бывает приемлемым, но за то быстрее и бесплатно. Несмотря на это есть и платный вариант, который отличается от бесплатно только отсутствием рекламы — подписка не влияет на алгоритмы работы.
Приложение очень простое в использование. После установки и запуска, вы можете увидеть примеры работы программы нажимая внизу на кнопки « Example 1 «, « Example 2 » и « Example 3 «. Чтобы добавить своё фото в обработку, нажмите внизу справа на иконку галереи (если вы хотите загрузить картинку из файловой системы устройства), либо фотоаппарата (если хотите сделать фото, а потом обработать его).
Есть два инструмента управления вверху слева — « Intesity » и « Radius «, которые позволяют управлять интенсивностью эффекта устранения размытия и радиусом его применения, соответственно. С помощью кнопок плюс и минус можно добавлять или убавлять эти параметры.
С помощью кнопок «Intesity» и «Radius» вы можете настроить обработку изображения
Нажав на кнопку с иконкой в виде галочки вверху справа вы можете применить заданные параметры и увидеть, как это отразиться на фото. Если результаты вас не устраивают, то вы можете снова изменить параметры и заново применить эффект. Если же устраивают, то фото можно сохранить в галерею с помощью кнопки с иконкой дискеты вверху справа, либо поделиться им в мессенджерах или соцсетях.
Приложение разработано только для операционной системы Android.
Photo Adjust — делает фотоснимки качественными
Кроме того, что Photo Adjust может делать любое фото чётким, он также улучшает и другие параметры качества картинки, от чего конечный результат становится лучше. Дополнительная полезная функция в алгоритме приложения — добавление света затемнённым участкам.
Также в возможностях программы есть ручное управление параметрами фото, что позволяет профессионалам более точно настроить обработку.
Fix Blur — бесплатное приложение с функцией фоторедактора
Бесплатное приложение Fix Blur для Android, которое может в два клика улучшить изображение и убрать эффект размытости. Пользоваться им очень легко и при этом оно гибкое в управлении. Запустите программу и нажмите внизу слева кнопку « Открыть » и выберите в галерее изображение, с которым хотите поработать.
Когда картинка появится в редакторе. С помощью бегунка « Устранить размытость » определите нужный вам уровень и сделайте таким образом изображение более чётким. Также вы можете оперировать и другими параметрами: изменение уровня резкости, фокуса и шума, что регулируется такими же бегунками. Каждое изменение мгновенно отображается на предпросмотре и влияет на конечный результат.
Установите параметры изображения
Из примечательно и удобного — есть функция отката изменений, а также сравнения с оригиналом. Всем этим можно управлять с помощью соответствующих кнопок внизу. Там же есть кнопка для сохранения фотографии.
Мы рассмотрели приложения, которые делают размытые фото четким. Надеемся, наша инструкция оказалась полезной.
Восстановление расфокусированных и смазанных изображений. Практика
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.
В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.
Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.
И вот результат обработки:
Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.
Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Вспомним теорию
Подробное описание теории было в первой части, но все же напомню вкратце основные моменты. В процессе искажения из каждого пикселя исходного изображения получается некоторое пятно в случае расфокусировки и отрезок для случая обычного смаза. Все это друг на друга накладывается и в результате мы получаем искаженное изображение — это называется сверткой изображения или конволюцией. То, по какому закону размазывается один пиксель и называется функцией искажения. Другие синонимы – PSF (Point spread function, т.е. функция распределения точки), ядро искажающего оператора, kernel и другие.
Чтобы восстановить исходное изображение нам необходимо каким-то образом обратить свертку, при этом не забывая про шум. Но это не так-то просто – если действовать, что называется, «в лоб», то получится огромная система уравнений, которую решить за приемлемое время невозможно.
Но на помощь к нам приходит преобразование Фурье и теорема о свертке, которая гласит, что операция свертки в пространственной области эквивалентна обычному умножению в частотной области (причем умножение поэлементное, а не матричное). Соответственно, операция обратная свертке эквивалентна делению в частотной области. Поэтому процесс искажения можно переписать следующим образом:
(1),
где все элементы — это фурье-образы соответствующих функций:
G(u,v) – результат искажения, т.е. то, что мы наблюдаем в результате (смазанное или расфокусированное изображение)
H(u,v) – искажающая функция, PSF
F(u,v) – исходное неискаженное изображение
N(u,v) – аддитивный шум
Итак, нам нужно восстановить максимальное приближение к исходному изображению F(u,v). Просто поделить правую и левую часть на H(u,v) не получится, т.к. при наличии даже совсем небольшого шума (а он всегда есть на реальных изображениях) слагаемое N(u,v)/H(u,v), будет доминировать, что приведет к тому, что исходное изображение будет целиком скрыто под шумом.
Чтобы решить эту проблему, были разработаны более устойчивые методы, одним из которых являтся фильтр Винера (Wiener). Он рассматривает изображение и шум как случайные процессы и находит такую оценку f’ для неискаженного изображения f, чтобы среднеквадратическое отклонение этих величин было минимальным:
(2)
Функцией S здесь обозначаются энергетические спектры шума и исходного изображения соответственно – поскольку, эти величины редко бывают известны, то дробь Sn / Sf заменяют на некоторую константу K, которую можно приблизительно охарактеризовать как соотношение сигнал-шум.
Способы получения PSF
Итак, возьмем за отправную точки описанный фильтр Винера — вообще говоря, существует множество других подходов, но все они дают примерно одинаковые результаты. Так что все описанное ниже будет справедливо и для остальных методов деконволюции.
Основная задача — получить оценку функции распределения точки (PSF). Это можно сделать несколькими способами:
1. Моделирование. Очень непросто и трудоемко, т.к. современные объективы состоят из десятка, другого различных линз и оптических элементов, часть из которых имеет асферическую форму, каждый сорт стекла имеет свои уникальные характеристики преломления лучей с той или иной длиной волны. В итоге задача корректного расчета распространение света в такой сложнейшей оптической системе с учетом влияния диафрагмы, переотражений и т.п. становится практически невозможной. И решение ее, пожалуй, доступно только разработчикам современных объективов.
2. Непосредственное наблюдение. Вспомним, что PSF — это то, во что превращается каждая точка изображения. Т.е. если мы сформируем черный фон и одну белую точку на нем, а затем сфотографируем это с нужным значением расфокусировки, то мы получим непосредственно вид PSF. Кажется просто, но есть много нюансов и тонкостей.
3. Вычисление или косвенное наблюдение. Присмотримся к формуле (1) процесса искажение и подумаем, как можно получить H(u,v)? Решение приходит сразу — нужно иметь исходное F(u,v) и искаженное G(u,v) изображения. Тогда поделив фурье-образ искаженного изображения на фурье-образ исходного изображения мы получим искомую PSF.
Про боке
Перед тем как перейдем к деталям, расскажу немного теории расфокусировки применительно к оптике. Идеальный объектив имеет PSF в виде круга, соответственно каждая точка превращается в круг некоторого диаметра. Кстати, это для многих неожиданность, т.к. с первого взгляда кажется, что дефокус просто растушевывает все изображение. Это же объясняет и то, почему фотошоповское размытие Гаусса совсем не похоже на тот рисунок фона (его еще называют боке), который мы видим у объективов. На самом деле это два разных типа размытия — по Гауссу каждая точка превращается в нечеткое пятно (колокол Гаусса), а дефокус каждую точку превращает в круг. Соответственно и разные результаты.
Но идеальных объективов у нас нет и в реальности мы получаем то или иное отклонение от идеального круга. Именно это и формирует неповторимый рисунок боке каждого объектива, заставляя фотографов тратить кучу денег на объективы с красивым боке 🙂 Боке можно условно разделить на три типа:
— Нейтральное. Это максимальное приближение к кругу
— Мягкое. Когда края имеют меньшую яркость, чем центр
— Жесткое. Когда края имеют большую яркость, чем центр.
Рисунок ниже иллюстрирует это:
Более того, тип боке — мягкое или жесткое зависит еще и от того, передний это фокус или задний. Т.е. фотоаппарат сфокусирован перед объектом или же за ним. К примеру, если объектив имеет мягкий рисунок боке в переднем фокусе (когда, скажем, фокус на лице, а задний план размыт), то в заднем фокусе боке того же объектива будет жестким. И наоборот. Только нейтральное боке не меняется от вида фокуса.
Но и это еще не все — поскольку каждому объективу присущи те или иные геометрические искажения, то вид PSF зависит еще и от положения. В центре — близко к кругу, по краям — эллипсы и другие сплюснутые фигуры. Это хорошо видно на следующем фото — обратите внимание на правый нижний угол:
А теперь рассмотрим подробнее два последних метода получения PSF.
PSF — Непосредственное наблюдение
Как уже говорилось выше, необходимо сформировать черный фон и белую точку. Но просто напечатать на принтере одну точку недостаточно. Необходим намного большее отличие в яркости черного фона и белой точки, т.к. одна точка будет размываться по большому кругу — соответственно должна иметь большую яркость, чтобы быть видной после размытия.
Для этого я распечатал черный квадрат Малевича (да, тонера много ушло, но чего не сделаешь ради науки!), наложил с другой стороны фольгу, т.к. лист бумаги все же неплохо просвечивает и иголкой проколол маленькую дырочку. Затем соорудил нехитрую конструкцию из 200-ваттной лампы и сэндвича из черного листа и фольги. Выглядело это вот так:
Далее включил лампу, закрыл ее листом, выключил общий свет и сделал несколько фоток используя два объектива — китовый Canon EF 18-55 и портретник Canon EF 85mm/1.8. Из получившихся фоток я вырезал PSF и затем построил графики профилей.
Вот что получилось для китового объектива:
И для портретника Canon EF 85mm/1.8:
Хорошо видно как меняется характер боке с жествкого на мягкий для одного и того же объектива в случае переднего и заднего фокуса. Также видно, какую непростую форму имеет PSF — она весьма далека от идеального круга. Для портретника также видны большие хроматические аберрации из-за большой светосилы объектива и малой диафрагмы 1.8.
И вот еще пара снимков при диафрагме 14 — на нем видно, как поменялась форма с круга на правильный шестиугольник:
PSF — Вычисление или косвенное наблюдение
Следующий подход — косвенное наблюдение. Для этого, как писалось выше, нам нужно иметь исходное F(u,v) и искаженное G(u,v) изображения. Как их получить? Очень просто — необходимо поставить фотоаппарат на штатив и сделать один резкий и один размытый снимок одного и того изображения. Далее с помощью деления фурье-образа искаженного изображения на фурье-образ исходного изображения мы получим фурье-образ нашей искомой PSF. После чего применив обратное преобразование Фурье получим PSF в прямом виде.
Я сделал два снимка:
И в результате получил вот такую PSF:
На горизонтальную линию не обращайте внимания, это артефакт после преобразования Фурье в матлабе. Результат, скажем так, средненький — очень много шумов и детали PSF видны не так хорошо. Тем не менее, метод имеет право на существование.
Описанные методы можно и нужно использовать для построения PSF при восстановлении размытых изображений. Т.к. от того, насколько эта функция приближена к реальной напрямую зависит качество восстановления исходного изображения. При несовпадении предполагаемой и реальной PSF будут наблюдаться многочисленные артефакты в виде «звона», ореолов и снижения четкости. В большинстве случаев предполагается форма PSF в виде круга, тем не менее для достижения максимальной степени восстановления рекомендуется поиграться с формой этой функции, попробовав несколько вариантов от распространенных объективов — как мы видели, форма PSF может варьироваться в значительной степени в зависимости от диафрагмы, объектива и прочих условий.
Краевые эффекты
Следующая проблема заключается в том, что если напрямую применить фильтр Винера, то на краях изображения будет своеобразный «звон». Его причина, если объяснять на пальцах, заключается в следующем — когда делается деконволюция для тех точек, которые расположены на краях, то при сборке не хватает пикселей, которые находятся за краями изображения и они принимаются либо равным нулю, либо берутся с противоположной стороны (зависит от реализации фильтра Винера и преобразования Фурье). Выглядит это так:
Одно из решений, чтобы избежать этого состоит предобработке краев изображения. Они размываются с помощью той же самой PSF. На практике это реализуется следующем образом — берется входное изображение F(x,y), размывается с помощью PSF и получается F'(x,y), затем итоговое входное изображение F»(x,y) формируется суммированием F(x,y) и F'(x,y) с использованием весовой функции, которая на краях принимает значение 1 (точка целиком берется из размытого F'(x,y)), а на расстоянии равном (или большем) радиусу PSF от края изображения принимает значение 0. Результат получается такой — звон на краях исчез:
Практическая реализация
Я сделал программу, демонстрирующую восстановление смазанных и расфокусированных изображений. Написана она на C++ с использованием Qt. В качестве реализации преобразования Фурье я выбрал библиотеку FFTW, как самую быструю из опен-соурсных реализаций. Называется моя программа SmartDeblur, скачать ее можно на странице github.com/Y-Vladimir/SmartDeblur, все исходники открыты под лицензией GPL v3.
Скриншот главного окна:
Основные функции:
— Высокая скорость. Обработка изображения размером 2048*1500 пикселей занимает около 300мс в режиме Preview (когда перемещаются ползунки настроек) и 1.5 секунды в чистовом режиме (когда отпустили ползунки настроек).
— Подбор параметров в Real-time режиме. Нет необходимости нажимать кнопки Preview, все делается автоматически, нужно лишь двигать ползунки настроек искажения
— Вся обработка идет для изображения в полном разрешении. Т.е. нет никакого маленького окошка предпросмотра и кнопок Apply.
— Поддержка восстановления смазанных и расфокусированных изображений
— Возможность подстройки вида PSF
Основной упор при разработке был сделан на скорость. В итоге она получилась такая, что превосходит коммерческие аналоги в десятки раз. Вся обработка сделана по-взрослому, в отдельном потоке. За 300 мс программа успевает сгенерить новую PSF, сделать 3 преобразования Фурье, сделать деконволюцию по Винеру и отобразить результат — и все это для изображения размером 2048*1500 пикселей. В чистовом режиме делается 12 преобразований Фурье (3 для каждого канала, плюс одно для каждого канала для подавления краевых эффектов) — это занимает около 1.5 секунд. Все времена указаны для процессора Core i7.
Пока в программе есть ряд багов и особенностей — скажем, при некоторых значениях настроек изображение покрывается рябью. Точно причину выяснить не удалось, но предположительно — особенности работы библиотеки FFTW.
Ну и в целом в процессе разработки пришлось обходить множество скрытых проблем как в FFTW (например не поддерживаются изображения с нечетным размером одной из сторон, типа 423*440.). Были проблемы и с Qt — выяснилось, что рендеринг линии со включенным Antialiasing работает не совсем точно. При некоторых значениях углов линия перескакивала на доли пикселя, что давало артефакты в виде сильной ряби. Для обхода этой проблемы добавил строчки:
Сравнение
Осталось сравнить качество обработки с коммерческими аналогами.
Я выбрал 2 самые известные программы
1. Topaz InFocus — www.topazlabs.com/infocus
2. Focus Magic — www.focusmagic.com
Для чистоты эксперимента будем брать те рекламные изображения, которые приведены на официальных сайтах — так гарантируется, что параметры тех программ выбраны оптимальными (т.к. думаю, разработчики тщательно отбирали изображения и подбирали параметры перед публикацией в рекламе на сайте).
Итак, поехали — восстановление смаза:
Берем пример с сайта Topaz InFocus:
www.topazlabs.com/infocus/_images/licenseplate_compare.jpg
Обрабатываем с вот такими параметрами:
и получаем такой результат:
Результат с сайта Topaz InFocus:
Результат весьма схожий, это говорит о том, что в основе Topaz InFocus используется похожий алгоритм деконволюции плюс постобработка в виде заглаживания-удаления шумов и подчеркивания контуров.
Примеров сильно дефокусировки на сайте этой программы найти не удалось, да и она не предназначена для этого (максимальный радиус размытия составляет всего несколько пикселей).
Можно отметить еще один момент — угол наклона оказался ровно 45 градусов, а длина смаза 10 пикселей. Это наводит на мысль о том, что изображение смазано искусственно. В пользу этого факта говорит и то, что качество восстановления очень хорошее.