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

From
Dima Marakasov (2:5020/1826.5)
To
All ()
Date
2003-01-22T03:18:43Z
Area
RU.ALGORITHMS
Hello Evgenij.

21 Jan 03 09:29, Evgenij Masherov wrote to me:

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

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

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

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

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

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

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

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

Dima

--- GoldED+/W32 1.1.4.7
 * Origin: We're alive (2:5020/1826.5)