Проблема возникает в следующей строке:
im_po = fftpack.fftshift((np.conjugate(im_fft) * im_fft).real)
Это, по существу, вычисляет величину сигнала (в частотной области), отбрасывая информацию о фазе. Без информации о фазе изображение в пространственной области не может быть однозначно восстановлено.
Для решения проблемы просто примените маску к комплексной частотной области im_fft
data:
im_po = fftpack.fftshift(im_fft)
mask = np.empty_like(im_po[0])*0 + 1
mask[417:430, 410:421] = 0
mask[430:443, 438:450] = 0
im_po_mask = im_po * mask