Gaußscher Notch -Filter in PythonPython

Python-Programme
Anonymous
 Gaußscher Notch -Filter in Python

Post by Anonymous »

Ich versuche, einen Gaußschen Notch -Filter in Python zu entwerfen, um periodisches Rauschen zu entfernen.import numpy as np

def gaussian_bandpass_filter(image):
image_array = np.array(image)
#Fourier Transform
fourier_transform = np.fft.fftshift(np.fft.fft2(image_array))

#Size of Image
m = np.shape(fourier_transform)[0]
n = np.shape(fourier_transform)[1]

u = np.arange(m)
v = np.arange(n)

# Find the center
u0 = int(m/2)
v0 = int(n/2)

# Bandwidth
D0 = 10

gaussian_filter = np.zeros(np.shape(fourier_transform))

for x in u:
for y in v:
D1 = math.sqrt((x-m/2-u0)**2 + (y-n/2-v0)**2)
D2 = math.sqrt((x-m/2+u0)**2 + (y-n/2+v0)**2)
gaussian_filter[x][y] = 1 - math.exp(-0.5 * D1*D2/(D0**2))

#Apply the filter
fourier_transform = fourier_transform + gaussian_filter
image_array = np.fft.ifft2(np.fft.ifftshift(fourier_transform))

return image_array
< /code>

Diese Funktion soll den Gaußschen Notch -Filter auf ein Bild anwenden und das gefilterte Bild zurückgeben, es scheint jedoch nicht zu funktionieren. Ich weiß nicht, wo ich damit falsch gelaufen bin (vielleicht habe ich die Formel nicht richtig verstanden?) Also, wenn mir jemand helfen könnte, würde ich es wirklich schätzen. akzeptabel.
Aber meine Funktion gibt dies zurück. (Ich verwende Pil.image.FromArray -Funktion, um das Array in das Bild umzuwandeln)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post