Laplace-Operator Kantenfilter < Computergraphik < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:36 Mi 26.02.2014 | Autor: | MK234 |
Hallo,
beim detektieren von Kanten in einem Grauwertbild werden ja häufig Kantenfilter wie der Sobel- oder der Laplace-Operator verwendet.
Beim Sobel-Operator (-1 -2 -1, 0 0 0, 1 2 1) wird doch ein Vorfaktor von 1/8 verwendet, damit die Grauwertskala auch beim gefilterten Bild eingehalten wird, d.h. keine Werte berechnet werden, welche außerhalb des zulässigen Grauwertbereichs sind.
Beim Laplace-Operator (0 -1 0, -1 4 -1, 0 -1 0) wird jedoch kein Vorfaktor verwendet. Wieso eigentlich, denn auch hier können doch durch das Filtern Grauwerte entstehen welche sich außerhalb des zulässigen Grauwertbereichs befinden?
Vielen Dank
|
|
|
|
Hallo!
Der Sinn dahinter ist nicht, unzulässige Werte zu vermeiden, auch wenn das zum Teil passiert. Viel mehr geht es einfach darum, das Ergebnis nochmal zu skalieren. Wenn du ein Bild mit genau zwei Grauwerten [mm] g_1 [/mm] und [mm] g_2 [/mm] hast, dann möchtest du genau diese Differenz auch im Resultat des Filters wiederfinden. Wenn dort alles um den Faktor 8 zu groß ist, mußt du eben durch 8 teilen.
Bedenke, daß du den Sobel-Filter zwei mal parallel anwenden mußt, einmal in x- und einmal in y-Richtung, und danach beide Resultate verrechnen mußt.
Der Laplace-Filter muß nur einmal angewendet werden, und du erhälst sofort das Endergebnis. Hier erkennst su schon an der Summe aller Elemente der Matrix, daß sie die Skalierung beibehält.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 09:32 Do 27.02.2014 | Autor: | MK234 |
Vielen Dank für die ausführliche Antwort.
> Hallo!
>
> Der Sinn dahinter ist nicht, unzulässige Werte zu
> vermeiden, auch wenn das zum Teil passiert. Viel mehr geht
> es einfach darum, das Ergebnis nochmal zu skalieren.
Wenn
> du ein Bild mit genau zwei Grauwerten [mm]g_1[/mm] und [mm]g_2[/mm] hast,
> dann möchtest du genau diese Differenz auch im Resultat
> des Filters wiederfinden. Wenn dort alles um den Faktor 8
> zu groß ist, mußt du eben durch 8 teilen.
>
Aber dann geht doch bei der Anwendung des Vorfaktors um die Beibehaltung der Grauwertskala, das eben die berechneten Werte sich innerhalb des zulässigen Grauwertbereichs befinden?
Angenommen ich wende den Sobel (-1 -2 -1, 0 0 0, 1 2 1) auf die Matrix (0 128 255, 0 128 255, 0 128 255) an, dann erhalte ich 1020, welcher sich außerhalb der Grauwertskala von 0-255 befindet. Teile ich diesen Wert durch 1/8 erhalte ich 127,5
> Bedenke, daß du den Sobel-Filter zwei mal parallel
> anwenden mußt, einmal in x- und einmal in y-Richtung, und
> danach beide Resultate verrechnen mußt.
Bei [mm] S_x [/mm] = 1/8 (-1 0 1, -2 0 2, -1 0 1) und [mm] S_y [/mm] = 1/8 (-1 -2 -1, 0 0 0, 1 2 1) wäre das Ergebnis dann [mm] \wurzel{S_x^{2} + S_y^{2}}, [/mm] was ja dann bereits ein skalierter Wert ist.
>
> Der Laplace-Filter muß nur einmal angewendet werden, und
> du erhälst sofort das Endergebnis. Hier erkennst su schon
> an der Summe aller Elemente der Matrix, daß sie die
> Skalierung beibehält.
Aber die jeweilige Summe der Koeffizienten eines Sobel-Filter ist ebenfalls Null?
nochmal Danke
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:15 Fr 28.02.2014 | Autor: | Infinit |
Hallo MK234,
beide Filtertypen werden zur Kantendetektion eingesetzt, ein Sobelfilter arbeitet mit einer Hochpassfilterung, das Laplacefilter mit einer Nulldurchgangsdetektion des Signals beim Auftreten einer Kante. Man kann durchaus beide Filtertypen so auslegen, dass die Summe der Filterkoeffizienten Null ergibt. Damit erreicht man, dass in einer monotonen Umgebung sich ein Nullsignal ergibt.
Was Du ansprichst, ist die Darstellung des Ergebnisses in einem Grauwertbereich von 8 bit, dem klassischen Fernsehsignal. Solch eine Darstellung hilft natürlich bei der Visualisierung des Ergebnisses, das Ziel der Anwendung ist es ja aber, Kanten zu detektieren, um man muss die Ergebnisse ja nicht in 8 Bit ausgeben, sondern kann auch durchaus numerische Werte in Matlab oder einem anderen Programm grafisch darstellen. Dies ist sozusagen erst der zweite Schritt zur Präsentation der Ergebnisse, der hat aber keinen direkten Einfluss auf die davor stattfindende Signalverarbeitung, die in diesem Falle eine Bildverarbeitung ist.
Viele Grüße,
Infinit
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:20 Sa 01.03.2014 | Autor: | MK234 |
> Hallo MK234,
> beide Filtertypen werden zur Kantendetektion eingesetzt,
> ein Sobelfilter arbeitet mit einer Hochpassfilterung, das
> Laplacefilter mit einer Nulldurchgangsdetektion des Signals
> beim Auftreten einer Kante. Man kann durchaus beide
> Filtertypen so auslegen, dass die Summe der
> Filterkoeffizienten Null ergibt. Damit erreicht man, dass
> in einer monotonen Umgebung sich ein Nullsignal ergibt.
> Was Du ansprichst, ist die Darstellung des Ergebnisses in
> einem Grauwertbereich von 8 bit, dem klassischen
> Fernsehsignal. Solch eine Darstellung hilft natürlich bei
> der Visualisierung des Ergebnisses, das Ziel der Anwendung
> ist es ja aber, Kanten zu detektieren, um man muss die
> Ergebnisse ja nicht in 8 Bit ausgeben, sondern kann auch
> durchaus numerische Werte in Matlab oder einem anderen
> Programm grafisch darstellen. Dies ist sozusagen erst der
> zweite Schritt zur Präsentation der Ergebnisse, der hat
> aber keinen direkten Einfluss auf die davor stattfindende
> Signalverarbeitung, die in diesem Falle eine
> Bildverarbeitung ist.
> Viele Grüße,
> Infinit
Vielen Dank Infinit.
o.k. der Vorfaktor kommt nur zur Anwendung, wenn die Ergebnisse wieder in einem Grauwertbild mit bestimmten Grauwertbereich dargestellt werden sollen.
Trotzdem frage ich mich immer noch, warum beim Sobel oder Prewitt-Filter ein Vorfaktor steht, beim Laplace-Operator aber nicht.
Wenn ich die Ergebnisse nach Anwendung des Laplace-Operators ebenfalls in einem Grauwertbild darstellen möchte, brauche ich doch ebenfalls einen Vorfaktor, wenn ich einen bestimmten Grauwertbereich einhalten möchte?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:21 Sa 01.03.2014 | Autor: | Infinit |
Hallo MK234,
ich würde Dir ja gerne eine eindeutige, stichhaltige Antwort in Bezug auf die Normierung geben, aber ich befürchte, diese existiert einfach nicht.
An der eigentlichen Arbeitsweise der Filter ändert solch eine Skalierung ja glücklicherweise nichts. Eine recht pragmatische Erklärung für die unterschiedliche Beschreibung kann ich jedoch anbieten: Die Filterung mit Hilfe des Laplace-Operators ist eindeutig sehr durch die Mathematik bestimmt und wurde dann auf die Bildverarbeitung angewandt. Anders sieht es bei den anderen Filtern aus, die schon mit dem Ziel einer Kantendetektion in Bildern entwickelt wurden und durch die Normierung konnte sichergestellt werden, dass man das Ergebnis als Bild begutachten konnte.
Viele Grüße,
Infinit
|
|
|
|