logo
Цифровая обработка сигналов

3. Восстановление расфокусированных и смазанных изображений

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

Правое изображение получено из левого, без использования 48-битного формата (в этом случае будет 100% восстановление исходного изображения) - слева обычный PNG, размытый искусственно. В результате мы видим более качественное изображение.

Многие считают, что размытие необратимая операция и информация безвозвратно теряется, т.к. каждый пиксель превращается в пятно, все смешивается, а при большом радиусе размытия получается однородный цвет по всему изображению. Это не совсем так - вся информация просто перераспределяется и может быть однозначно восстановлена. Исключение составляют лишь края изображения шириной в радиус размытия, где полноценное восстановление невозможно.

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

x1 | x2 | x3 | x4… - Исходное изображение.

После искажения значение каждого пикселя суммируется со значением левого, т.е. xi = xi + xi-1. Надо еще поделить на 2, но опустим этот шаг для простоты. В результате имеем размытое изображение со значениями пикселей:

x1 + x0 | x2 + x1 | x3 + x2 | x4 + x3… - Размытое изображение.

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

x1 + x0 | x2 -- x0 | x3 + x0 | x4 -- x0… - Восстановленное изображение.

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