Jump to content
    

Математики, помогите с быстрой сверткой

Всем доброго дня!

Господа математики, помогите сделать быструю 2d свертку, что-то сходу не взлетает.

Исходные данные: ч/б картинка = A(x,y), 128*128, 256 градаций яркости. Ядро свертки - 7*7 = B(x,y). Прогоняю обычную 2d свертку,получаю результат = T(x,y). Результат верный, т.к. совпадает с рассчитанным в сторонней программе. Берем его за эталон. 

Хочу сделать свертку по схеме   T(x,y) = IFFT ( FFT(A(x,y)) * КС(FFT(B(x,y))) ), где КС - комплексно-сопряженные элементы.

Вопросы вот в чем:

1. Если решать задачу "в лоб", т.е. находить FFT(B(x,y)), то получим матрицу 7*7. Каким образом ее умножать на матрицу FFT(A(x,y)) размерностью 128*128? Допустим, мы перед FFT(B(x,y)) расширяем матрицу B до размера 128*128 нулями. Где в этом случае (в каких координатах) ставить ядро свертки? Посредине? В координатах (0,0)? Будет ли такое преобразование (расширение нулями) математически эквивалентным свертке во временной области?

2. Умножение спектров FFT(A) * КС(FFT(B)) должно производится по правилу перемножения матриц или просто умножение соответствующих элементов?

Пробовал уже всяко, математической эквивалентности (т.е. точно тех же результатов, что и со сверткой во временной области) так и не получил.

Заранее благодарен за любую помощь!

Share this post


Link to post
Share on other sites

В OpenCV в описании функции cv::dft есть пример, функция:

void convolveDFT(InputArray A, InputArray B, OutputArray C)

там в всё подробно расписано

Edited by gridinp

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...