Benutzer-Werkzeuge

Webseiten-Werkzeuge


digitale_filter_-_bildoperatoren

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
digitale_filter_-_bildoperatoren [2024/01/20 13:41] – [Der selbe Formalismus ein wenig formaler :-)] torsten.roehldigitale_filter_-_bildoperatoren [2024/01/20 14:35] (aktuell) – [Die Faltung im Detail] torsten.roehl
Zeile 25: Zeile 25:
 |{{ :inf:java:punkt_a.png?200 |}}|  |{{ :inf:java:punkt_b.png?200 |}}||{{ :inf:java:punkt_c.png?200 |}}| |{{ :inf:java:punkt_a.png?200 |}}|  |{{ :inf:java:punkt_b.png?200 |}}||{{ :inf:java:punkt_c.png?200 |}}|
 | Orginal-Bild (Quelle, I = Input)  |**+**  |3x3 Filter-Matrix (M=Maske) |**=**  |Ziel-Bild (Senke, O = Output) | | Orginal-Bild (Quelle, I = Input)  |**+**  |3x3 Filter-Matrix (M=Maske) |**=**  |Ziel-Bild (Senke, O = Output) |
-|Der zu verändernde Bildpunkt befindet sich in der Mitte, umgeben von 8 Nachbarpixeln, welche auch ausgewertet werden müssen. Der zentrale Punkt mit seinen 8 Nachbarn werden wir mit "lokalen Bildbereich" bezeichnen.| | Der Filter besitzt 9 Werte. Filter und Orginalbild werden miteinander verknüpft. Die Verknüpfung bezeichnet man als Faltung. Die mathematischen Prinzipien, die der Faltung zu Grunde liegen, gehören nicht zur Schulmathematik und werden hier deshalb nicht aufgeführt.| |Der Original-Bildpunkt mit seinen Nachbarn wurde zusammen mit einem Filter kombiniert. Das Ergebnis ist der hier Rot dargestellte Bildpunkt.|+|Der zu verändernde Bildpunkt befindet sich in der Mitte, umgeben von 8 Nachbarpixeln, die ebenfalls ausgewertet werden müssen. Der zentrale Punkt mit seinen 8 Nachbarn wird als „lokaler Bildbereich“ bezeichnet.| | Der Filter besitzt 9 Werte. Filter und Orginalbild werden miteinander verknüpft. Die Verknüpfung bezeichnet man als Faltung. Die mathematischen Prinzipien, die der Faltung zu Grunde liegen, gehören nicht zur Schulmathematik und werden hier deshalb nicht aufgeführt.| |Der Original-Bildpunkt mit seinen Nachbarn wurde zusammen mit einem Filter kombiniert. Das Ergebnis ist der hier rot dargestellte Bildpunkt.|
  
  
Zeile 40: Zeile 40:
 | @orange: lokale Operation  | Ein Filter ist ein lokaler Operator. Ein Bildbereich **I** und eine Maske **M** werden verknüpft, um den Wert eines neuen Pixels (Bildpunkt, **O** ) zu berechnen. Die Operation **O = I * M** bezeichnet man als Faltung. | | @orange: lokale Operation  | Ein Filter ist ein lokaler Operator. Ein Bildbereich **I** und eine Maske **M** werden verknüpft, um den Wert eines neuen Pixels (Bildpunkt, **O** ) zu berechnen. Die Operation **O = I * M** bezeichnet man als Faltung. |
 ==== Die Faltung im Detail ==== ==== Die Faltung im Detail ====
-Es wird jetzt gezeigt, wie, ausgehend von einem lokalen Bildbereich und einer Maske, ein neuer Bildpunkt berechnet wird. In späteren Abschnitten wird im wesentlichen nur noch die Maske verändert, die vorgehensweise bleibt aber immer dieselbe.+Es wird jetzt gezeigt, wie, ausgehend von einem lokalen Bildbereich und einer Maske, ein neuer Bildpunkt berechnet wird. In späteren Abschnitten wird im Wesentlichen nur noch die Maske verändert, die Vorgehensweise bleibt aber immer dieselbe.
  
   * Der Wert jedes Pixels im Bildbereich wird mit dem entsprechenden Wert der Maske multipliziert. Auf diese Weise ergeben sich 9 Terme.   * Der Wert jedes Pixels im Bildbereich wird mit dem entsprechenden Wert der Maske multipliziert. Auf diese Weise ergeben sich 9 Terme.
Zeile 72: Zeile 72:
 \begin{equation} O(i,j)  = \sum_{y=-1}^1 \sum_{x=-1}^1 M(x,y) \cdot I(i+x,j+y) \end{equation} \begin{equation} O(i,j)  = \sum_{y=-1}^1 \sum_{x=-1}^1 M(x,y) \cdot I(i+x,j+y) \end{equation}
  
-Die Formel kann direkt aus dem obigen Beispiel hergeleitet werden, indem statt konkreter Zahlen verallgemeinerte Koordinaten und Gewichte verwendet werden. O(i,j) bedeutet, dass der Filter M  auf den Bildpunkt mit den Koordinaten i,j angewandt wird. O(i,j) ist der neue Grauwert. Wir beschränken uns hier auf die Auswertung von Graubildern, d.h jeder Bildpunkt ist eindeutig durch eine Zahl beschrieben.+=== Herleitung === 
 +Die Formel kann direkt aus dem Beispiel hergeleitet werden, indem statt konkreter Zahlen verallgemeinerte Koordinaten und Gewichte verwendet werden. O(i,j) bedeutet, dass der Filter M  auf den Bildpunkt mit den Koordinaten i,j angewandt wird. O(i,j) ist der neue Grauwert. Wir beschränken uns hier auf die Auswertung von Graubildern, d.h jeder Bildpunkt ist eindeutig durch eine Zahl beschrieben.
  
    
Zeile 80: Zeile 81:
 \[ M(x,y) = \begin{pmatrix} m_1 & m_2 & m_3 \\  m_4 & m_5 & m_6 \\ m_7 & m_8 & m_9 \end{pmatrix}\] \[ M(x,y) = \begin{pmatrix} m_1 & m_2 & m_3 \\  m_4 & m_5 & m_6 \\ m_7 & m_8 & m_9 \end{pmatrix}\]
  
 +<note>Matrix Einträge:\\
  
-  * Beispiele für I(x,y) und M(x,y): Während I(x,y) relative Angaben enthält, um verschiedene Bildpunkte zu repräsentieren, beschreibt M(x,y) konstante Werte. +  * Während I(x,y) relative Angaben enthält, um verschiedene Bildpunkte zu repräsentieren, beschreibt M(x,y) konstante Werte.
-          *  I(7,8) ist demnach der Bildpunkt mit den Koordinaten (7 | 8 ) während M(1,1) den Eintrag in der zweiten Zeile und zweiten Spalte (m9) darstellt. +
-          * I(x,y) = w5 (Wert an der Position x,y) +
-          * I(x-1,y-1) = w1 (Wert an der Position x-1,y-1)  +
-          * M(1,-1) = m3 (Filterwert an der Stelle  x+1,y-1) +
-          * M(0,0) = m5 +
-          * M(1,1) = m9+
  
 +Wenn I(x,y) =$w_5$ den Wert an der Position x,y repräsentiert dann gilt (auf das Beispiel bezogen):
 +  * I(x,y) = $w_5=5$ //(Wert an der Position x,y)//
 +  * I(x-1,y-1) = $w_1=1$ //(Wert an der Position x-1,y-1)// 
 +Für die Matrix M gilt dann folgendes:
 +  * $M(1,-1) = m_3=1$ //(Filterwert an der Stelle  x+1,y-1)//
 +  * $M(0,0) = m_5=3$
 +  * $M(1,1) = m_9=1$
 +</note>
 +
 +Nach dem obigen Beispiel gilt dann:
 +
 + \[ \begin{split} O(i,j) =  m_1\cdot w_1 + m_2\cdot w_2 + m_3\cdot w_3\\ + m_4\cdot w_4 + m_5\cdot w_5 +  m_6\cdot w_6 \\+ m_7\cdot w_7 + m_8\cdot w_8 + m_9\cdot w_9 \end{split} \]
 +
 +(Die Werte für I werden eingesetzt)
 +
 +\[ \begin{split} = m_1\cdot I(i-1,j-1) + m_2\cdot I(i,j-1) + m_3\cdot I(i+1,j-1) \\+ m_4 \cdot I(i-1,j) + m_5\cdot I(i,j)+ m_6\cdot I(i+1,j) \\ + m_7\cdot I(i-1,j+1) + m_8\cdot I(i,j+1) + m_9\cdot I(i+1,j+1) \end{split} \]
 +
 +(Die Werte für M werden eingesetz)
 +
 +\[ \begin{split} = M(-1,-1) \cdot I(i-1,j-1) + M(0,-1)\cdot I(i,j-1) + M(1,-1)\cdot I(i+1,j-1) \\+ M(-1,0) \cdot I(i-1,j) + M(0,0)\cdot I(i,j)+ M(1,0)\cdot I(i+1,j) \\ + M(-1,1)\cdot I(i-1,j+1) + M(0,1)\cdot I(i,j+1) + M(1,1)\cdot I(i+1,j+1) \end{split} \]
 +
 +(Summenzeichen für die erste Komponente benutzen - Laufvariable heißt x)
 +
 +\[ \begin{split} = \sum_{x=-1}^1 \{ M(x,-1) \cdot I(i+x,j-1)  + M(x,0) \cdot I(i+x,j)  + M(x,1)\cdot I(i+x,j+1) \} \end{split} \]
 +
 +(Summenzeichen auch für die zweite Komponente benutzen - Laufvariable heißt y)
 +
 +\[ \begin{split} = \sum_{y=-1}^1  \sum_{x=-1}^1 M(x,y) \cdot I(i+x,j+y)  \end{split} \]
 +
 +Das war es, diese Formel ist mit der Eingangsformel identisch.
  
 ===== Zusammenfassung ===== ===== Zusammenfassung =====
Zeile 94: Zeile 120:
  
 Um einen digitalen Filter anzuwenden, sind folgende Schritte abzuarbeiten: Um einen digitalen Filter anzuwenden, sind folgende Schritte abzuarbeiten:
 +  - Ein digitaler 3x3-Filter muss zur Verfügung stehen
 +  - Der Filter wird über ein Bildbereich gelegt (Faltung) und ein neuer Bildpunkt wird berechnet.
 +        *  Dieser Bildpunkt wird zwischengespeichert bzw. in ein neues Bild geschrieben.
 +  - Der Filter wird über den nächsten Bildbereich gelegt, sodass der nächste Bildpunkt berechnet werden kann.
  
-  * Ein digitaler 3x3-Filter muss zur Verfügung stehen + Auf diese Weise werden alle neuen Bildpunkte berechnet und in ein neues Bild geschrieben.
-  * Der Filter wird über ein Bildbereich gelegt (Faltung) und ein neuer Bildpunkt wird berechnet. Dieser Bildpunkt wird zwischengespeichert bzw. in ein neues Bild geschrieben. +
-  * Der Filter wird über den nächsten Bildbereich gelegt, sodass der nächste Bildpunkt berechnet werden kann. Auf diese Weise werden alle neuen Bildpunkte berechnet und in ein neues Bild geschrieben.+
  
 <WRAP center round info 100%> <WRAP center round info 100%>
digitale_filter_-_bildoperatoren.1705758100.txt.gz · Zuletzt geändert: 2024/01/20 13:41 von torsten.roehl