Восстановление изображений: что искажает наши снимки?
Добрый вечер. В комментариях к предыдущему посту было несколько желающих узнать о восстановлении изображений немножко побольше. Что ж. Люди хотят, а я делаю!
Осторожно, ОЧЕНЬ много картинок!
Предисловие: перед тем, как описать модель искажения, считаю необходимым рассмотреть основные виды искажений с примерами. Для начала мне необходимо ввести новый термин - функция рассеяния точки (ФРТ). Это и есть та функция, которая искажает изображения. Начнем!
Знакомьтесь, это одномерный Боб. И сегодня он поможет нам с нашими экспериментами!
1) Смаз. Дрогнула рука, плохая камера, неправильно выставлена выдержка – пожалуйста, вместо красоты какое-то пятно. При смазе каждая точка изображения превращается в линию определенной длины и направленную под определенным углом. Продемонстрируем наглядно. Боб, ты готов?
Красота! Однако, что же способно совершить такое? А вот она, та самая ФРТ для смаза:
В фас и профиль, так сказать. Не волнуйся, Боб, мы отомстим за тебя. Как же нам избавиться от этого злобного смаза?
Однажды моя жена сфотографировала что-то, прислала мне и строго сказала купить три штуки. Но когда я открыл фото, меня ждал сюрприз…
Елки-палки! Это что вообще такое? Попробуем разобраться. Значица, очевидный смаз, причем камера двигалась слева направо – это видно по более светлой части справа на снимке. Открываю Matlab и вперед. Искажение явно большой протяженности и при кажущейся горизонтальности все равно есть уклон градуса 3-4. Учитывая все эти факты, я получил следующее изображение:
Что это там написано такое... О, шоколадка с фундуком! Это я люблю!
Восстановление произведено, мягко говоря, не идеальное. Но при таком искажении результат достаточно неплохой. Однако, со смазом все.
Дефокусировка или расфокусировка. Это тот случай, когда каждая точка изображения превращается в кружочек. Затем все эти кружочки перемешиваются друг с другом и получается испорченное изображение. С точки зрения оптики дефокусировка - явление, при котором все лучи от предмета собираются в одной точке, но эта точка находится не в фокальной плоскости. Допустим, вы взяли лупу и собрали солнечный свет в одной точке на какой-то поверхности. А теперь поставим между этой поверхностью и лупой еще какое-нибудь препятствие. На этом препятствии точка будет уже кружочком.
Различают два основных вида дефокусировки – искажение дискообразной ФРТ и искажение по Гауссу. Боб, твой выход. Давай покажем этим товарищам, как умирают настоящие точки!
Диск.
И ФРТ для диска (неприятная особа, триста лет бы ее не видел):
Гаусс.
И ФРТ для Гаусса:
К слову, для Гаусса более характерен такой вид. Так называемый колокол Гаусса.
Однажды мы с женой поспорили, что я смогу восстановить и сильно расфокусированное изображение в том числе. В результате я получил вот такую прелесть:
Хм, ну, никто и не говорил, что будет легко. Так. Очевидный расфокус, возьму-ка я фильтр Винера и шарахну. При восстановлении расфокуса нужно учитывать радиус диска, его можно примерно определить по буквам. Получилось что-то такое:
Уж не знаю, что за штука там такая, но три шоколадки жена проиграла мне честно. Поэтому она пошла за ними и пока еще не вернулась. Это было 3 года назад… Но сейчас не об этом.
Шум. Шум появляется, например, в том случае, если на фотоаппарате злоупотреблять поправками экспозиции или выставить неправильные настройки. Тогда возникает так называемое “зерно”. Думаю, все хотя бы раз его наблюдали. Появляется шум по очень многим причинам, так что даже при идеальной настройке и хорошей технике от шума полностью избавиться не получится. Основной вклад в шумовую составляющую создает темновой ток.Давайте же рассмотрим основные виды шумов. Их всего три:
-Гауссов шум – наиболее часто встречающийся.
-Импульсный шум – еще его называют “соль и перец”.
-Мультипликативный шум - нет, не мультипликационный.
Параметрами Гауссова и мультипликативного шума являются дисперсия(d) и математическое ожидание. Математическое ожидание – среднее значение случайной величины при стремлении количества ее измерений к бесконечности. Допустим, кидаем мы игральный кубик и нам интересно найти среднее арифметическое очков. Это среднее арифметическое, очевидно, является случайной величиной, однако если количество бросков будет очень много, то мы получим вполне определенное число. Это и есть математическое ожидание. Дисперсией называется среднее значение квадрата отклонения случайно выбранной величины от мат. ожидания, то есть дисперсия – мера разброса. Попробую продемонстрировать зависимость зашумленности от этих величин.
Боб, эй, Боб, ты меня слышишь? Боюсь, с шумом ты мне не поможешь. Давайте возьмем случайную картинку из интернета и зашумим ее по самое это самое! Давайте, пока копов нет. Я никому не скажу!
Вот, подойдет! Где мой 8-битный хлороформ....
Гауссов шум.
m = 0.5 и d = 0.5
m = 0.15 и d = 0.5
m = 0.5 и d = 0.15
И мультипликативный шум. Для него математическое ожидание всегда равно 0.
d = 0.5
d = 10
Для импульсного шума существует только один параметр – плотность шума, то есть, какая доля из пикселей будет подвергнута искажению. Пошумим?
Больше мне никто не присылал изображений, поэтому я пошел в интернеты сам. И нашел там вот такого парня:
Давайте его немного почистим? А весь перец заберем себе... Задача осложняется тем, что отличить шум от нешума здесь довольно проблематично.
Однако, что-то со всем этим сделать все же вышло.
На сегодня у меня все, товарищи! Надеюсь, вам понравилась эта маленькая экскурсия по маньякам в мире изображений. Я с удовольствием почитаю ваши отзывы и отвечу на вопросы в комментариях. Если увидите меня с мешком и лопатой в три часа ночи в лесу - это я за картошкой вышел. Пойдем, Боб.
Если кто-то желает попробовать восстановить реальное изображение - милости прошу в специальный справочник по Matlab для этого и более серьезную статью на эту тему.
Пс. Люди знающие! Если видите ошибки - буду рад услышать ваше мнение.