1d Moving Average Filter Matlab
Erstellt am Mittwoch, den 08. Oktober 2008 um 20:04 Uhr Zuletzt aktualisiert am Donnerstag, den 14. März 2013 um 01:29 Uhr Geschrieben von: Batuhan Osmanoglu Zugriffe: 41233 Moving Average In Matlab Oft finde ich mich in der Notwendigkeit der Mittelung der Daten, die ich habe, um das Rauschen ein wenig zu reduzieren Bit. Ich schrieb paar Funktionen, um genau das tun, was ich will, aber Matlabs in Filter-Funktion gebaut funktioniert auch ziemlich gut. Hier schreibe ich über 1D und 2D Mittelung von Daten. 1D-Filter kann mit der Filterfunktion realisiert werden. Die Filterfunktion erfordert mindestens drei Eingangsparameter: den Zählerkoeffizienten für den Filter (b), den Nennerkoeffizienten für den Filter (a) und natürlich die Daten (X). Ein laufender Mittelwertfilter kann einfach definiert werden: Für 2D-Daten können wir die Funktion Matlabs filter2 verwenden. Für weitere Informationen, wie der Filter funktioniert, können Sie eingeben: Hier ist eine schnelle und schmutzige Implementierung eines 16 von 16 gleitenden durchschnittlichen Filters. Zuerst müssen wir den Filter definieren. Da alles, was wir wollen, gleicher Beitrag aller Nachbarn ist, können wir einfach die Funktion verwenden. Wir teilen alles mit 256 (1616), da wir nicht den allgemeinen Pegel (Amplitude) des Signals ändern wollen. Zur Anwendung des Filters können wir einfach sagen, die folgenden Unten sind die Ergebnisse für die Phase eines SAR-Interferogramms. In diesem Fall ist der Bereich in der Y-Achse und der Azimut auf der X-Achse abgebildet. Der Filter war 4 Pixel breit im Bereich und 16 Pixel breit in Azimuth. Mean Filter oder durchschnittliche Filter Kategorie. Digitale Signal - und Bildverarbeitung (DSP und DIP) Softwareentwicklung. Abstrakt. Der Artikel ist ein praktischer Leitfaden für durchschnittliche Filter oder durchschnittliche Filter Verständnis und Umsetzung. Artikel enthält Theorie, C-Quellcode, Programmieranleitung und Beispielanwendung. 1. Einführung in das Mittelfilter oder Mittelfilter Mittelwertfilter. Oder Durchschnittsfilter ist ein Fensterfilter der linearen Klasse, der das Signal glättet (Bild). Der Filter arbeitet als Tiefpaß. Die Grundidee hinter dem Filter ist für jedes Element des Signals (Bild) nehmen einen Durchschnitt über seine Nachbarschaft. Um zu verstehen, wie das in der Praxis gemacht wird, beginnen wir mit der Fensteridee. 2. Filter Fenster oder Maske Lassen Sie uns vorstellen, sollten Sie einen Brief lesen und was Sie sehen im Text durch Loch in spezielle Schablone wie diese eingeschränkt. Also, das Ergebnis des Lesens ist Sound t. Ok, lassen Sie uns den Brief wieder lesen, aber mit Hilfe einer anderen Schablone: Jetzt ist das Ergebnis des Lesens t ist Sound 240. Lassen Sie uns den dritten Versuch machen: Jetzt lesen Sie Buchstaben t als Ton 952. Was passiert hier Zu sagen, dass In der mathematischen Sprache, machen Sie eine Operation (Lesen) über Element (Buchstabe t). Und das Ergebnis (Ton) hängt von der Elementnachbarschaft (Buchstaben neben t) ab. Und diese Schablone, die hilft, Elementnachbarschaft aufzuheben, ist Fenster Ja ist Fenster nur eine Schablone oder ein Muster, durch das Sie das Elementnachbarschaft 0151 einen Satz von Elementen um das gegebene 0151 vorwählen, um Ihnen zu helfen, Entscheidung zu treffen. Ein anderer Name für Filter-Fenster ist Maske 0151 Maske ist eine Schablone, die Elemente, die wir nicht darauf achten, versteckt. In unserem Beispiel ist das Element, das wir am linken Rand des Fensters betätigen, in der Praxis jedoch seine übliche Position die Mitte des Fensters. Lassen Sie uns einige Fenster Beispiele sehen. In einer Dimension. Feige. 4. Fenster oder Maske der Größe 5 in 1D. In zwei Dimensionen. Feige. 5. Fenster oder Maske der Größe 3times3 in 2D. In drei Dimensionen. Denken Sie über Gebäude. Und jetzt mdash über Raum in diesem Gebäude. Der Raum ist wie 3D-Fenster, das ausschneidet einige Unterraum aus dem gesamten Raum des Gebäudes. Sie finden 3D-Fenster in Volumen (Voxel) Bildverarbeitung. 3. Verständnis der mittleren Filter Nun wollen wir sehen, wie man einen Durchschnitt über Elemente neighborhoodrdquo. Die Formel ist einfach 0151 Summe Elemente und dividieren die Summe durch die Anzahl der Elemente. Wir wollen z. B. einen Durchschnitt für den Fall berechnen, der in Abb. Fig. 7 Feige. 7. Durchschnittlich. Und das ist alles. Ja, wir haben nur 1D-Signal durch Mittelfilter gefiltert Lassen Sie uns fortsetzen und schreiben Sie Schritt für Schritt Anleitungen für die Verarbeitung durch Mittelfilter. Mittleren Filter oder durchschnittlichen Filter-Algorithmus: Platzieren Sie ein Fenster über Element Nehmen Sie eine durchschnittliche 0151 Summe Elemente und dividieren Sie die Summe durch die Anzahl der Elemente. Nun, wenn wir den Algorithmus haben, ist es an der Zeit, einige Code mdash schreiben lassen uns auf die Programmierung kommen. 4. 1D-Mittelfilter-Programmierung In diesem Abschnitt entwickeln wir 1D-Mittelfilter mit Fenster der Größe 5. Wir haben 1D-Signal der Länge N als Eingang. Der erste Schritt ist die Platzierung der Fenster 0151 wir tun, dass durch Änderung der Index der führenden Element: Achten Sie darauf, dass wir mit dem dritten Element beginnen und Finishing mit den letzten zwei. Das Problem ist, dass wir nicht mit dem ersten Element beginnen können, da in diesem Fall der linke Teil des Filterfensters leer ist. Wir werden unten diskutieren, wie dieses Problem zu lösen. Der zweite Schritt ist die durchschnittliche, ok: Nun, schreiben Sie uns den Algorithmus als Funktion: Typ-Element könnte definiert werden als: 5. Behandlung von Kanten Für alle Fenster-Filter gibt es ein Problem. Das ist Kante behandeln. Wenn Sie Fenster über das erste (letzte) Element platzieren, ist der linke (rechte) Teil des Fensters leer. Um die Lücke zu schließen, sollte das Signal verlängert werden. Für Mittelfilter ist es sinnvoll, Signal - oder Bildsymmetrie so zu verlängern: So, bevor das Signal an unsere mittlere Filterfunktion weitergegeben wird, sollte das Signal verlängert werden. Lassen Sie uns aufschreiben die Hülle, die alle Vorbereitungen macht. Wie Sie sehen können, berücksichtigt unser Code einige praktische Fragen. Zuerst prüfen wir unsere Eingangsparameter 0151 Signal sollte nicht NULL sein und Signallänge sollte positiv sein: Zweiter Schritt 0151 prüfen wir Fall N1. Dieser Fall ist ein spezieller Fall, denn um eine Erweiterung zu bauen, brauchen wir mindestens zwei Elemente. Für das Signal von 1 Elementlänge ergibt sich das Signal selbst. Wie auch darauf achten, unsere mittlere Filter arbeitet an Ort und Stelle, wenn Ausgangsparameter Ergebnis NULL ist. Lassen Sie uns jetzt Speicher für Signalverlängerung zuteilen. Überprüfen Sie die Speicherzuweisung. Dokumentation y filter (b, a, x) filtert die Eingangsdaten x mit einer rationalen Übertragungsfunktion, die durch die Zähler - und Nennerkoeffizienten b und a definiert ist. Wenn a (1) nicht gleich 1 ist, dann filtert der Filter die Filterkoeffizienten um a (1). Daher muss a (1) ungleich Null sein. Wenn x ein Vektor ist, gibt der Filter die gefilterten Daten als Vektor mit der gleichen Größe wie x zurück. Wenn x eine Matrix ist, wirkt das Filter entlang der ersten Dimension und gibt die gefilterten Daten für jede Spalte zurück. Wenn x ein mehrdimensionales Array ist, wirkt das Filter entlang der ersten Array-Dimension, deren Größe nicht gleich 1 ist. Y-Filter (b, a, x, zi) verwendet Anfangsbedingungen zi für die Filterverzögerungen. Die Länge von zi muss max (Länge (a), Länge (b)) - 1 sein. Y-Filter (b, a, x, zi, dim) wirkt entlang der Dimension dim. Wenn z. B. x eine Matrix ist, gibt das Filter (b, a, x, zi, 2) die gefilterten Daten für jede Zeile zurück. Y liefert zffilter () auch die endgültigen Bedingungen zf der Filterverzögerungen unter Verwendung einer der vorherigen Syntaxen zurück. Rationale Übertragungsfunktion Die Input-Output-Beschreibung der Filteroperation an einem Vektor in der Z-Transformationsdomäne ist eine rationale Übertragungsfunktion. Eine rationale Übertragungsfunktion hat die Form Y (z) b (1) b (2) z x2212 1. B (n b 1) z x 2212 n b 1 a (2) z x2212 1. A (n a 1) z x 2212 n a X (z). Die sowohl FIR - als auch IIR-Filter behandelt. N a ist die Rückkopplungsfilterreihenfolge und n b die Vorwärtsfilterordnung. Sie können auch die rationale Übertragungsfunktion als die folgende Differenzengleichung ausdrücken: a (1) y (n) b (1) x (n) b (2) x (n × 2212 1). B (n b 1) x (n × 2212 n b) x 2212 a (2) y (n × 2212 1) × 2212. X2212 a (n a 1) y (n × 2212 n a). Darüber hinaus können Sie die rationale Übertragungsfunktion mit ihrer direkten Form II-transponierten Implementierung wie im folgenden Diagramm darstellen. Wegen der Normalisierung wird ein (1) 1 angenommen. Der Betrieb des Filters am Abtastwert m wird durch die Zeitdomänendifferenzgleichungen y (m) b (1) x (m) z 1 (m x 2212 1) z 1 (m) b (2) x (m) z 2 m x2212 1) x2212 A (2) y (m) x00A0x00A0 x22EE x00A0x00A0x00A0x00A0x00A0 x00A0x00A0x00A0x00A0x00A0 x22EE x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0 x22EE zn x2212 2 (m) b (n x2212 1) x (m) zn x2212 1 (m x2212 1) x2212 eine (n x2212 1 ) Y (m) zn x2212 1 (m) b (n) x (m) x 2212 a (n) y (m). Wenn Sie die Signalverarbeitung Toolboxx2122 haben, können Sie einen Filter entwerfen, d. Mit designfilt. Anschließend können Sie mit Y Filter (d, X) Ihre Daten filtern. Wählen Sie Ihr CountryMean Filter Gemeinsame Namen: Mittlere Filterung, Glättung, Mittelwertbildung, Kastenfilterung Kurzbeschreibung Die mittlere Filterung ist eine einfache, intuitive und einfach zu implementierende Methode zum Glätten von Bildern, d. H. Zur Verringerung der Intensitätsänderung zwischen einem Pixel und dem nächsten. Es wird oft verwendet, um Rauschen in Bildern zu reduzieren. Wie es funktioniert Die Idee der mittleren Filterung ist einfach, jeden Pixelwert in einem Bild durch den mittleren (durchschnittlichen) Wert seiner Nachbarn, einschließlich sich selbst, zu ersetzen. Dies hat die Wirkung, Pixelwerte zu eliminieren, die für ihre Umgebung nicht repräsentativ sind. Eine mittlere Filterung wird üblicherweise als ein Faltungsfilter angesehen. Wie andere Windungen basiert es auf einem Kernel. Die die Form und Größe der Nachbarschaft darstellt, die bei der Berechnung des Mittelwerts abgetastet werden soll. Oft wird ein 32153-Quadratkern verwendet, wie in Fig. 1 gezeigt, obwohl grßere Körner (z. B. 52155 Quadrate) für eine stärkere Glättung verwendet werden können. (Man beachte, dass ein kleiner Kernel mehr als einmal angewendet werden kann, um einen ähnlichen, aber nicht identischen Effekt wie einen einzigen Durchgang mit einem großen Kernel zu erzeugen.) Abbildung 1 32153 Mittelwertbildung Kernel häufig verwendet bei der mittleren Filterung Berechnung der direkten Konvolution eines Bildes mit Führt dieser Kernel den mittleren Filterprozess durch. Richtlinien für die Verwendung Mittlere Filterung wird am häufigsten als eine einfache Methode zur Reduzierung von Rauschen in einem Bild verwendet. Wir veranschaulichen den Filter, der zeigt, dass das Original durch Gaußsches Rauschen mit einem Mittelwert von Null und einer Standardabweichung () von 8 beschädigt ist, die Wirkung des Anwendens eines 32153-Mittelfilters. Beachten Sie, dass das Rauschen weniger offensichtlich ist, aber das Bild wurde weich gemacht. Wenn wir die Größe des mittleren Filters auf 52155 erhöhen, erhalten wir ein Bild mit weniger Rauschen und weniger hochfrequenten Details, wie in Dasselbe Bild, das stärker durch Gaußsche Rauschen (mit einem Mittelwert von null und a von 13) beschädigt ist, gezeigt ist In ist das Ergebnis einer mittleren Filterung mit einem 32153-Kernel. Eine noch anspruchsvollere Aufgabe wird durch die Wirkung der Glättung des verrauschten Bildes mit einem 32153-Mittelfilter bereitgestellt. Da die Schußrauschenpixelwerte oft sehr verschieden von den umgebenden Werten sind, neigen sie dazu, den durch den mittleren Filter berechneten Pixelmittelwert deutlich zu verzerren. Die Verwendung eines 52155-Filters bewirkt, dass dieses Ergebnis keine signifikante Verbesserung der Rauschunterdrückung ist, und außerdem ist das Bild nun sehr verschwommen. Diese Beispiele veranschaulichen die zwei Hauptprobleme bei der mittleren Filterung, die sind: Ein einzelnes Pixel mit einem sehr nicht repräsentativen Wert kann den Mittelwert aller Pixel in seiner Nachbarschaft signifikant beeinflussen. Wenn die Filterumgebung eine Kante überspannt, interpoliert der Filter neue Werte für Pixel auf der Kante und verschwimmt diese Kante. Dies kann ein Problem sein, wenn scharfe Kanten in der Ausgabe erforderlich sind. Beide Probleme werden durch den Medianfilter angegangen. Was oft ein besserer Filter zur Reduzierung von Rauschen ist als der mittlere Filter, aber es dauert länger, um zu berechnen. Im allgemeinen wirkt das mittlere Filter als Tiefpaßfilter und reduziert somit die im Bild vorhandenen räumlichen Intensitätsableitungen. Wir haben diesen Effekt bereits als Erweichung der Gesichtszüge im obigen Beispiel gesehen. Betrachten wir nun das Bild, das eine Szene darstellt, die einen breiteren Bereich von verschiedenen Raumfrequenzen enthält. Nach einmaligem Glätten mit einem 32153-Mittelfilter erhalten wir, daß die tiefe räumliche Frequenzinformation im Hintergrund nicht signifikant durch Filtern beeinflußt worden ist, aber die (einst klaren) Kanten des Vordergrundsubjekts wurden merklich geglättet. Nach dem Filtrieren mit einem 72157-Filter erhalten wir eine noch dramatischere Darstellung dieses Phänomens im Vergleich dieses Ergebnisses mit dem, das erhalten wird, indem man ein 32153-Filter über das Originalbild dreimal in üblichen Varianten abtastet. Variationen des hierin diskutierten mittleren Glättungsfilters umfassen Threshold-Averaging Wird die Glättung unter der Bedingung angewendet, daß der mittlere Pixelwert nur geändert wird, wenn die Differenz zwischen seinem ursprünglichen Wert und dem Mittelwert größer als ein voreingestellter Schwellenwert ist. Dies bewirkt, dass das Rauschen mit einem weniger dramatischen Verlust an Bilddetails geglättet wird. Andere Faltungsfilter, die nicht den Mittelwert einer Nachbarschaft berechnen, werden oft auch zum Glätten verwendet. Einer der häufigsten ist der Gaußsche Glättungsfilter. Interaktive Experimente Sie können interaktiv mit diesem Operator experimentieren, indem Sie hier klicken. Das mittlere Filter wird unter Verwendung einer Faltung berechnet. Können Sie sich vorstellen, wie die speziellen Eigenschaften des mittleren Filterkerns genutzt werden können, um die Faltung zu beschleunigen? Was ist die Rechenkomplexität dieser schnelleren Faltung Verwenden Sie einen Kantendetektor auf dem Bild und notieren Sie die Stärke der Ausgabe. Wenden Sie dann ein 32153-Mittelfilter auf das Originalbild an und führen Sie den Flankendetektor erneut aus. Kommentar zur Differenz. Was passiert, wenn ein 52155- oder ein 72157-Filter verwendet wird Das Anwenden eines 32153-Mittelfilters zweimal erzeugt nicht das gleiche Ergebnis wie ein 52155-Mittelfilter einmal. Es kann jedoch ein Konvolutionskernel 52155 konstruiert werden, der äquivalent ist. Wie sieht dieser Kernel aus? Erstellen Sie einen 72157 Faltungskernel, der eine gleichwertige Wirkung auf drei Pässe mit einem 32153-Mittelfilter hat. Wie denkst du, der mittlere Filter würde mit Gaußschen Rauschen umgehen, das nicht symmetrisch gegen Null war. Versuche einige Beispiele. Referenzen R. Boyle und R. Thomas Computer Vision: Ein erster Kurs. Blackwell Scientific Publications, 1988, S. 32 - 34. E. Davies Machine Vision: Theorie, Algorithmen und Praktiken. Academic Press, 1990, Kap. 3. D. Vernon Machine Vision. Prentice-Halle, 1991, Kap. 4. Lokale Informationen Spezielle Informationen zu diesem Operator finden Sie hier. Weitere allgemeine Hinweise zur lokalen HIPR-Installation finden Sie im Einleitungsbereich Lokale Informationen.
Comments
Post a Comment