Я делаю несколько гибридных изображений, я получаю низкие частоты с БПФ, применяя гауссову 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 Gaussian FT](https://i.stack.imgur.com/6pnxO.png)
LF
![Human LF](https://i.stack.imgur.com/YqePj.png)
Низкочастотное и высокочастотное изображение
![Low and High frequency image Low and High frequency image](https://i.stack.imgur.com/gZmpA.png)
Гибридное изображение
![Hybrid Image](https://i.stack.imgur.com/RsNz4.png)