Высокие частоты с FFT Python - PullRequest
       44

Высокие частоты с FFT Python

0 голосов
/ 12 октября 2018

Я делаю несколько гибридных изображений, я получаю низкие частоты с БПФ, применяя гауссову FT (изображение ниже) и делаю обратное БПФ, пока я получаю высокие частоты, вычитая низкие частоты к исходному изображению, таким образом работаетно есть ли другой способ сделать это?

Я думал о применении обратного гауссиана в частотном пространстве, но, похоже, он не работает должным образом (или, возможно, я делаю это неправильно).

Мой код сейчас:

def generate_HF(image, im_low):
    im_gray_high = image - im_low
    im_gray_high = normalize(im_gray_high)
    return im_gray_high

human_fourier = fftpack.fft2(human_gray,fftshape)
cat_fourier = fftpack.fft2(cat_gray,fftshape)
gauss_fft = fftpack.fft2(gauss(9),fftshape)
cat_ifft = np.real(fftpack.ifft2(gauss_fft*cat_fourier))
hs=int(np.floor(50/2.))
cat_ifft_crop = normalize(cat_ifft[hs:cat_gray.shape[0]+hs, hs:cat_gray.shape[1]+hs])

human_ifft = np.real(fftpack.ifft2(gauss_fft*human_fourier))
hs=int(np.floor(50/2.))
human_ifft_crop = normalize(human_ifft[hs:human_gray.shape[0]+hs, hs:human_gray.shape[1]+hs])
cat_high = generate_HF(cat_gray, cat_ifft_crop)
hybrid = normalize(human_ifft_crop + cat_high)

Гауссов FT

Gaussian FT

LF

Human LF

Низкочастотное и высокочастотное изображение

Low and High frequency image

Гибридное изображение

Hybrid Image

...