Восстановление изображения

From
Evgenij Masherov (2:5020/175.2)
To
Dima Marakasov ()
Date
2003-01-22T20:21:57Z
Area
RU.ALGORITHMS
From: "Evgenij Masherov" <EMasherow@nsi.ru>

Wed Jan 22 2003 03:18, Dima Marakasov wrote to All:

 

 DM>>>   Такая идея в голову пришла: пусть у нас есть несколько цифровых
 DM>>> фотограйий одного и того-же предмета, сделанный из одной точки,
 DM>>> причем изображения на этих фотографиях смещены друг относительно
 DM>>> друга на расстояния менее размера одного пикселя. Существуют ли
 DM>>> алгоритмы, позволяющие из серии таких фотографий получить
 DM>>> картинку большего разрешения, чем исходные?
 EM>> 1. Такие программы мне неизвестны, но, по-видимому, существуют.
 EM>> 2. Достаточно простая схема восстановления может состоять, например в: 
 EM>> а. Повышении разрешения каждой из фотографий интерполяцией.
 EM>> б. Нахождения смещения фотографий относительно базовой (корреляция).
 EM>> в. Усреднением сдвинутых на найденное смещение фотографий.

 DM> Но так мы не получим 100% качественного изображения, оно размытым
 DM> получится (и, мне кажется, не многим лучше, чем если мы просто увеличим
 DM> одно изображение). А меня интересуют более качественные методы. В
 DM> частности, такой: случай имеем 2n*2n картинку, получаем из нее 4 n*n
 DM> картинки, при уменьшении разрешения просто считаем среднее арифметическое
 DM> для 4 соседних пикселей. 4 картинки получаются сдвиганием на 1 пиксель
 DM> исходного изображения по горизонтали и по вертикали. Вот из этих 4
 DM> картинок хочется получить исходную. Ну небольшая погрешность - +/- 1-3 на
 DM> R,G,B из-за потерь при округлении и, может быть, некоторые траблы с
 DM> краями.

Тут придется выбирать - некоторая размытость или ложные детали...
Артефакт восстановления.

 EM>> 3. Более сложная схема может составлять уравнения, связывающие точки
 EM>> исходного изображения с точками на фотографиях через рассеивание в
 EM>> аппарате, которые затем решаются (например, через Фурье).

 DM> Я думаю, можно составить систему уравнений вида

 DM> b1[x,y] = a[2x,2y]    +a[2x+1,2y]  +a[2x,2y+1]  +a[2x+1,2y+1]
 DM> b2[x,y] = a[2x+1,2y]  +a[2x+2,2y]  +a[2x+1,2y+1]+a[2x+2,2y+1]
 DM> b3[x,y] = a[2x,2y+1]  +a[2x+1,2y+1]+a[2x,2y+2]  +a[2x+1,2y+2]
 DM> b4[x,y] = a[2x+1,2y+1]+a[2x+2,2y+1]+a[2x+1,2y+2]+a[2x+2,2y+2]

 DM> для всех x,y, тут a - искомое изображение (2n*2n), b1-b4 - уменьшенные,
 DM> b2 со сдвигом на 1 по x перед уменьшением, b3 - на 1 по y, b4 на 1 по x и
 DM> по y.
 DM> Т.е. a[x,y] - неизвестные.

 DM> Видно, во-первых, что неизвестных больше, чем уравнений, причем на 4*n+1,
 DM> (при исходном изображении 2n*2n).
 DM> Это решается добавлением черных полосок справа и снизу. Тогда эти
 DM> "лишние" неизвестные обратятся в 0.

Это решение породит существенные искажения. В частности, потому, что система
будет близка к вырожденной. Здесь надо учитывать ошибку, и решать, например,
через МНК.

 DM> Далее, система получается очень большой (n*n*4), кто-нибудь имеет
 DM> представление, как ее решать? Думаю, придется ограничиться небольшими
 DM> картинками. Хотя детали и нужны только в определенных местах, как
 DM> правило...

Итеративно, вероятно. Скажем, сопряженными градиентами.
Возможно и через Фурье...

 DM> Зато какая польза - поводил по объекту однопиксельной "камерой" - уже
 DM> имеешь некое подобие картинки :)

Воскрешение механического телевидения?

 DM> Собственно, это пока только теория, хотеось бы услышать мнение уважаемого
 DM> all.

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

Евгений Машеров АКА СанитарЖеня

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)