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