使用FFT Python实现高频

时间:2018-10-12 12:42:31

标签: python python-3.x image-processing filtering fft

我正在做一些混合图像,通过应用高斯FT的FFT(下图)并进行逆FFT,我得到了低频,到目前为止,我通过将原始图像减去低频来获得了高频,这种方式有效但是,还有其他方法吗?

我当时正在考虑在频率空间中应用逆高斯,但似乎无法正常工作(或者可能我没有以正确的方式进行操作)。

我现在的代码:

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

0 个答案:

没有答案