2016-09-14 1 views
-1

Например, я знаю изображение I и его результат J. Мне нужно узнать ядро, которое было применено на I, чтобы получить J.Могу ли я найти ядро ​​для свертки, учитывая, что у меня есть входное изображение и результат в MATLAB?

+0

@obchardon, извините .. я не знаю с чего начать .. Я попытался использовать deconv() .. – rowana

+0

http://stackoverflow.com/questions/19150516/2d-deconvolution-using-fft-in -matlab-проблемы – User1551892

ответ

1

Я думаю, нам понадобится немного больше информации, чтобы можно было дать некоторые руководство здесь.

Краткая история состоит в том, что если то, что у вас есть, является результатом круговой свертки (т. Е. Что-то вроде y = ifft2(fft2(x).*fft2(h)), то вы можете использовать БПФ для восстановления ядра, просто инвертируя этот процесс (хотя могут быть численные проблемы, если fft2(x) или fft2(h) имеют какие-либо элементы, близкие к нулю

Однако, мое предположение было бы, что у вас есть частичный результат линейной свертки -.. что-то вроде имея y = conv2(x, h, 'same') в этом случае вам необходимо решить два уровня тёплицевого система y = T*h, где T - это матрица свертки, построенная от x.

Смежные вопросы