Высокочастотный акцент с применением фильтра высоких частот Баттерворта в MATLAB - PullRequest
0 голосов
/ 07 октября 2018

Итак, мой основной код выглядит следующим образом:

    filter = a + b * butterworth([P Q], 0.1, 1);

    dft_input_p = dft(input_p, 'DFT');
    dft_filter = dft(filter, 'DFT');

    G = dft_input_p .* dft_filter;
    g = dft(G, 'IDFT');

    img_result = im2uint8(real(g));

a и b - параметры для высокочастотного выделения, P и Q - размеры с добавлением нуля для входной фотографии.

Мой код для реализации фильтра Баттерворта:

function f = butterworth(size, cutoff, n)
    [u v]=meshgrid(-floor(size(2)/2):floor(size(2)/2)-1,-floor(size(1)/2):floor(size(1)/2)-1);
    D = (u .^ 2 + v .^ 2) .^ (0.5);
    D = cutoff ./ D;
    D = D .^ (2 * n);
    f = 1 ./ (1 + D);
end

Функции dft и idft реализованы мной, и я могу гарантировать, что они безошибочны, так как я протестировал их на каком-то изображении.Однако, когда я применяю высокочастотный фильтр Баттерворта вместе с высокочастотным акцентом на изображение, я не могу получить правильное выходное изображение.Выходное изображение полностью пустое.

Изображение во всей программе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...