bjunolulz
Mislim da ti fali zero padding i definiranje podrucja za koje je H jednaka nuli kod pseudoinverznog filtra.
To bi otprilike ovako trebalo ici:
 def restore( imgd, psf, filter = ‘inverse’): 
    1) spremi redove, stupce od imgd i psf u zasebne varijable(img.shape funkcija) 
   2) definiraj velicinu rekonstruirane slike(zbog konvolucije, dimenzije su imgd+psf-1)… do te dimenzije napuni nulama imgd i psf, kako bi cirkularna konvolucija(mnozenje u spektru) bila jednaka linearnoj konvoluciji
  3) napravi fft2 od imgd i psf
  4) if za inverzni filtar (samo iskoristi formulu), pomnozis spektar slike i inverzni filtar da dobijes spektar rekonstruirane, onda ifft
5) if za pseudo filtar, s tim da je kod pseudofiltra jedina razlika reci za koje je podrucje fja jednaka nuli (npr. H[np.abs(H) < K] = 0,K odaberi proizvoljno), zatim pomnozis spektar slike i pseudo filtar, napravis ifft 
7) izrezes samo dio slike koji ti treba (smanjis dimenzije slike za dimenzije imgd + psf - 1, jer smo ih za toliko povećali na pocetku zbog zero paddinga)