Восстановление изображения
- 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)