Canny Edge Detector < Computergraphik < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo mal wieder!
Ich verstehe den Canny Edge Detector (zur Kantendetektion) nicht so ganz.
[Dateianhang nicht öffentlich]
Vor allem verstehe ich hier den Punkt Nonmaximum Supression nicht - was genau wird da gemacht? Wie kommt man auf die Winkel und was ist die beste Orientierung?
Auch verstehe ich im ersten Teil nicht so ganz, wieso die Kantenstärke so ist, wie es da steht und wie man auf die Kantenorientierung kommt.
Ich weiß, dass man für eine Kante die lokalen Maxima und Minima der Ableitung sucht und dass man das Bild vor der Verarbeitung glättet. Aber was hier beschrieben ist, ist mir nicht so ganz klar. Vielleicht kann mir da ja jemand auf die Sprünge helfen.
Viele Grüße
Bastiane
Dateianhänge: Anhang Nr. 1 (Typ: PNG) [nicht öffentlich]
|
|
|
|
Hallo Bastiane,
mit dem Canny Edge Detector selbst hatte ich nie zu tun, aber ich denke, deine Fragen sind allgemein genug. Deshalb hier meine Anmerkungen:
> ... wieso die Kantenstärke so ist, wie es da steht...
Kann es sein, dass du Kantenstärke mit Kantendicke/-breite gleichsetzt? Hier geht ja nur darum, wie stark ausgeprägt oder wie plausibel eine Kante an dieser Stelle ist. Wir bilden ja die diskreten Richtungsableitungen [mm] f_x [/mm] und [mm] f_y, [/mm] die auf einfacher Differenzbildung von Grauwerten benachbarter Pixel beruhen. Je größer die Helligkeitsdifferenz zwischen zwei Pixeln ist, desto wahrscheinlicher (schärfer) ist hier die Kante.
Mit [mm] $\wurzel{f_x^2+f_y^2}$ [/mm] nehmen wir einfach nur den Betrag des Gradienten, also erledigen wir es für beide Richtungen gleichzeitig (also Kante in x- ODER in y-Richtung).
> ... und wie man auf die Kantenorientierung kommt...
Wenn sich die Grauwerte in y-Richtung stark und in x-Richtung kaum unterscheiden, dann ist [mm] f_y [/mm] groß, [mm] f_x [/mm] klein. Die Kante verläuft dann fast waagrecht. Mit deiner Formel bestimmst du die Gradientenrichtung, also den Vektor senkrecht zur Kante! Das ist wichtig! Niemals vergessen. Der Gradient steht immer senkrecht auf der Kante und zeigt von dunkel nach hell. Er zeigt nicht in Kantenrichtung (da gäbe es ja auch zwei Möglichkeiten...). Die Formel selbst kennst du ja als Mathe-Ass. Ist ja beim Steigungsdreieck ja nicht anders...
> Wie kommt man auf die Winkel...
Nun, wir haben ein quadratisches Gitter, in dem die Pixel angeordnet sind. In einem echteckigen Gitter haben wir zwei Vorzugsrichtungen, x- und y-Richtung. Daher 0° und 90°. Ist das Gitter sogar quadratisch, dann werden darin auch 45°- und 135° Kanten unverfälscht wiedergegeben. Daher hier zusätzlich diese Winkel. Alle anderen Kantenrichtungen im (analogen) Bild führen zu Treppenbildung im diskretisierten Bild, also zu Verfälschungen.
> ... was ist die beste Orientierung?
Ich vermute (zu faul, es zu überprüfen):
Wir schauen, welchem dieser vier Werte unsere vorher bestimmte Gradientenrichtung am nächsten ist. Der größere Wert der Nachbarpixel bezieht sich dann wohl auf den Gradientenbetrag. Das sind aber nur meine plausiblen(?) Vermutungen.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:20 So 11.02.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|