Я хочу создать фильтр верхних частот Гаусса после определения правильного размера заполнения (например, если ширина и высота изображения 10X10, то должно быть 20X20).
У меня есть код Matlab, который я пытаюсь перенести в OpenCV, но мне трудно его правильно перенести. Мой код Matlab показан ниже:
f1_seg = imread('thumb1-small-test.jpg');
Iori = f1_seg;
% Iori = imresize(Iori, 0.2);
%Convert to grayscale
I = Iori;
if length(size(I)) == 3
I = rgb2gray(Iori);
end
%
%Determine good padding for Fourier transform
PQ = paddedsize(size(I));
I = double(I);
%Create a Gaussian Highpass filter 5% the width of the Fourier transform
D0 = 0.05*PQ(1);
H = hpfilter('gaussian', PQ(1), PQ(2), D0);
% Calculate the discrete Fourier transform of the image.
F=fft2(double(I),size(H,1),size(H,2));
% Apply the highpass filter to the Fourier spectrum of the image
HPFS_I = H.*F;
Я знаю, как использовать ДПФ в OpenCV, и я могу создать его изображение, но я не уверен, как создать фильтр Гаусса. Подскажите, пожалуйста, как мне создать высокочастотный фильтр Гаусса, как показано выше?