|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dima Marakasov 2:5020/1826.5 22 Jan 2003 04:18:43 To : All Subject : Восстановление изображения -------------------------------------------------------------------------------- 21 Jan 03 09:29, Evgenij Masherov wrote to me: DM>> Такая идея в голову пришла: пусть у нас есть несколько цифровых DM>> фотограйий одного и того-же предмета, сделанный из одной точки, DM>> причем изображения на этих фотографиях смещены друг относительно DM>> друга на расстояния менее размера одного пикселя. Существуют ли DM>> алгоритмы, позволяющие из серии таких фотографий получить DM>> картинку большего разрешения, чем исходные? EM> 1. Такие программы мне неизвестны, но, по-видимому, существуют. EM> 2. Достаточно простая схема восстановления может состоять, например в: EM> а. Повышении разрешения каждой из фотографий интерполяцией. EM> б. Hахождения смещения фотографий относительно базовой (корреляция). EM> в. Усреднением сдвинутых на найденное смещение фотографий. Hо так мы не получим 100% качественного изображения, оно размытым получится (и, мне кажется, не многим лучше, чем если мы просто увеличим одно изображение). А меня интересуют более качественные методы. В частности, такой: случай имеем 2n*2n картинку, получаем из нее 4 n*n картинки, при уменьшении разрешения просто считаем среднее арифметическое для 4 соседних пикселей. 4 картинки получаются сдвиганием на 1 пиксель исходного изображения по горизонтали и по вертикали. Вот из этих 4 картинок хочется получить исходную. Hу небольшая погрешность - +/- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/164703e2de36e.html, оценка из 5, голосов 10
|