Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оператор Лапласса и суперрезолюшен 
V
    Опции темы
Mr_Nuke
Дата 11.6.2012, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Всем привет! 
Разбираюсь с алгоритмом SuperResolution. Запоролся вот на чем:

Есть формула 
user posted image

Qt*Q - оператор Лапласа. 
Лямбда - простое число. 
A - матрица, которая в теории м.б. любого размера. 

Вопрос про оператор Лапласа. Что бы сложить его с матрицей А, надо сделать его такого же размера. Не понимаю, как?

Вот что написано об этом в книжке (мой корявый перевод с английского)

Цитата

Оператор Лапласа - дифференциальный оператор, действующий в линейном пространстве гладких функций, но для непрерывных данных может быть аппроксимирован сверткой с маской формы
user posted image

Оператор L выполняет эту свертку как умножение матриц. Он имеет форму 2.3.7 (пустые значения означают нули)
user posted image


Вот на сколько я понимаю, надо построить оператор L, как на картинке, нужного мне размера. Не могу понять, как!  smile  smile 
PM MAIL   Вверх
W4FhLF
Дата 11.6.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 5
Всего: 121



Цитата
Qt*Q - оператор Лапласа. 


Q -- оператор Лапласа, а произведение это некий сглаживающий фильтр. 

Ласпасиан (оператор Лапласа) -- это аппроксимация производной второго порядка. Собственно ядро свёртки это очевидным образом показывает. Апроксимируйте вторую производную конечными разностями и получите то, что хотите. 

http://en.wikipedia.org/wiki/Discrete_Lapl...ite_Differences


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Mr_Nuke
Дата 11.6.2012, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата(W4FhLF @  11.6.2012,  19:35 Найти цитируемый пост)
Q -- оператор Лапласа, а произведение это некий сглаживающий фильтр. 


Вот что написано в книжке:
Цитата

Выгодно выбрать Q как производный коэффициент. Это создаст мягкие переходы между уже известными точками сетки изображения высокого разрешения. Если мы предположим, что delta x и delta y   - это производные операторы, тогда мы можем записать Q как
user posted image
Тогда
user posted image
Где L – дискретный оператор Лапласа. 



Цитата
Апроксимируйте вторую производную конечными разностями и получите то, что хотите. 

метод конечных разностей это 
Код

for i = 1 to M - 1
    for j = 1 to N - 1
        img_out[i][j] = 4 * img[i][j] - img[i-1][j] - img[i+1][j] - img[i][j-1] - img[i][j+1]
 
верно? 
Можно по подробней, в моем случае, тогда что является второй производной?
PM MAIL   Вверх
W4FhLF
Дата 11.6.2012, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 5
Всего: 121



Цитата
Можно по подробней, в моем случае, тогда что является второй производной? 


Вроде бы правильно записано. Этот код для матлаба создаёт конечноразностную аппроксимацию оператора Лапласа для двумерной равномерной сетки:

Код

m=10; % размеры сетки
h=1; % шаг дискретизации
I = speye(m);
e = ones(m,1);
T = spdiags([e -4*e e],[-1 0 1],m,m);
S = spdiags([e e],[-1 1],m,m);
A = (kron(I,T) + kron(S,I)) / h^2;


Можете развернуть вашу картинку в вектор, умножить матрицу на вектор и сравнить результат со своим. 

Только матрица A в коде выше соответствует вашей Q, а не L. Т.е. для решения системы нормальных уравнений из первого поста нужно использовать lambda*At*A
Возможно я ошибаюсь конечно. 

Это сообщение отредактировал(а) W4FhLF - 11.6.2012, 20:41


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Mr_Nuke
Дата 12.6.2012, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Спасибо, буду разбираться!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.