Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Richtungsableitung entlang eines Kreises(diskret)

Richtungsableitung entlang eines Kreises(diskret)

Universität / Fachhochschule

Differentiation

Funktionalanalysis

Funktionen

Integration

Tags: Differentiation, Funktion, Funktionalanalysis, Gradient, Integration, Richtungsableitung

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Josey

Josey aktiv_icon

17:32 Uhr, 16.02.2013

Antworten
Hallo alle miteinander.


Ich habe eine Frage zur Berechnung der Richtungsableitung entlang eines Kreises.

Ein wenig muss ich noch ausholen: Es geht um Bildverarbeitung, ich habe ein Bild am Anfang zur Verfügung(Beispiel: Bild1 aus der öffentlichen Datenbank MMU), daraus erstelle ich Ableitungsbilder in X und Y Richtung(Horizontal respektive Vertikal). Jeweils Bilder 2 und 3

[Achtung FRAGE:]
Wie kriege ich die Richtungsableitung entlang eines Kreises aus den beiden Richtungsableitungen in X bzw. Y Richtung heraus?
[/Achtung FRAGE:]
Erschwert wird das durch den diskreten Fall, dass ein Kreis aus endlichen Punkten besteht, aber ich bin auch für eine stetige Lösung/Hinweise dankbar.



Iris_HoBoFly
gaussGradientX
gaussGradientY

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Hierzu passend bei OnlineMathe:
Funktion (Mathematischer Grundbegriff)

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
CKims

CKims aktiv_icon

00:00 Uhr, 17.02.2013

Antworten
wenn du eine richtungsableitung haben moechtest musst du noch sagen welche richtung dich denn nun interessiert...

anhand der bilder jedoch, nehme ich an, dass die richtung von einer virtuellen lichtquelle vorgegeben wird. sieht so aus als soll von links nach rechts licht auf das gerenderte bild fallen (beim mittleren bild). damit ist dein richtungvektor (10)

beim rechten bild soll wohl licht von oben nach unten fallen.... dann richtungsvektor (01)

jetzt bildest du den gradienten fuer ein pixel. sprich in der diskreten welt bestimmst du die steigung der grauwerte in sämtliche richtungen. verfahren, wie man nun so eine steigung diskret abschätzt, gibt es wie sand am meer. such dir eine aus. die wohl einfachste methode ist, dir die direkten pixelnachbarn zu nehmen und dann eine gerade durch ihre grauwerte zu legen. dann ergeben sich 4 richtungen, die du betrachten musst. denjenigen mit der größten steigung suchst du dir aus. bilde einen vektor in diese richtung, der eine länge mit der gefundenen steigung hat. und schliesslich skalarmultipliziere das mit deinem richtungsvektor... tada, du hast die richtungsableitung fuer einen pixel gefunden. das machst du mit allen pixeln und es ergibt sich automatisch dieser kreis um der pupille. du musst also nicht explizit entlang eines kreises arbeiten


lg
Josey

Josey aktiv_icon

00:19 Uhr, 17.02.2013

Antworten
Hallo, danke für die Antwort.

Falls es etwas unklar sein sollte, das sind keine virtuellen Lichtquellen.
Diese beiden Bilder sind Ableitungen des Originalbildes in X bzw. Y -Richtung. Ich möchte gerne aus diesen beiden Ableitungen eine Ableitung entlang eines Kreises machen, angenommen entlang der Pupille (sagen wir am obersten Punkt der Pupille angefangen im Uhrzeigersinn).

Trifft deine Erklärung darauf zu?
Antwort
CKims

CKims aktiv_icon

00:30 Uhr, 17.02.2013

Antworten
nein meine erklärung ergibt im endeffekt auch eine ableitung in x und y richtung... mit meiner erklärung kann man halt auch in eine andere richtung ableiten...


"Ich möchte gerne aus diesen beiden Ableitungen eine Ableitung entlang eines Kreises machen,"

diese aussage macht mathematisch keinen sinn... was ist eine ableitung entlang eines kreises? beschreib mal genau was für ein bild rauskommen soll...



Josey

Josey aktiv_icon

00:33 Uhr, 17.02.2013

Antworten
eine Ableitung entlang des Kreises, das ergibt kein Bild sondern eben nur einen Kreis mit 1 pixel Dicke entlang der Pupille, und die Richtung ist ja nicht konstant.


Ich weiß nicht wie ich es formulieren soll, das ist wahrscheinlich auch ein Problem :(
Antwort
CKims

CKims aktiv_icon

00:39 Uhr, 17.02.2013

Antworten
also wenn dir der kreis schon bekannt ist, wo du lang ableiten willst... dann brauchst du doch gar keine ableitung sondern malst einfach nur den kreis.

wenn du allerdings automatisch einen kreis mit 1 pixel dicke um die pupille generieren moechtest, bist du mit den ableitungen auf dem holzweg. das wird schwierig. hier helfen kantenerkennungsalgorithmen.

wenn du nur diesen "3D effekt" loswerden moechtest, den ich oben faelschlicherweise durch eine virtuelle lichtquelle erklärt habe, dann hier meine erklaerung an deine wuensche angepasst nochmal:

jetzt bildest du den gradienten fuer ein pixel. sprich in der diskreten welt bestimmst du die steigung der grauwerte in sämtliche richtungen. verfahren, wie man nun so eine steigung diskret abschätzt, gibt es wie sand am meer. such dir eine aus. die wohl einfachste methode ist, dir die direkten pixelnachbarn zu nehmen und dann eine gerade durch ihre grauwerte zu legen. dann ergeben sich 4 richtungen, die du betrachten musst. denjenigen mit der größten steigung suchst du dir aus. diese groesste steigung ist der grauwert fuer dein aktuelles pixel. das machst du dann mit allen pixeln
Josey

Josey aktiv_icon

01:05 Uhr, 17.02.2013

Antworten
Es geht tatsächlich um die automatische Erkennung einer Pupille, da gibt es momentan 2 Verfahren die sich durchgesetzt haben. Die eine von John Daugman beruht auf einem Integro Differentiellen Operator.


Die Formel würde ich gerne reinkopieren aber ich krieg das nicht hin. Die Formel ist hier zu finden www.cl.cam.ac.uk~jgd1000/irisrecog.pdf auf Seite 2 rechts oben deklariert als "(1)"

Vielleicht verstehe ich die Formel oder die Erklärung dazu auch falsch. Soweit ich verstanden habe, sucht diese Formel die Parameter für den Kreis (definiert mit xy Koordinaten des Mittelpunkts und dem Radius r) für den die Summe der Richtungsableitungen "entlang des Kreises" maximal ist.

Hier nochmal der Link der wird irgendwie umformatiert

www . cl . cam . ac . uk/~jgd1000/irisrecog.pdf
Antwort
CKims

CKims aktiv_icon

01:44 Uhr, 17.02.2013

Antworten
keine garantie auf richtigkeit... ich hab das nur überflogen...

das ist keine richtungsableitung entlang eines kreises, sondern ein ringintegral...

die formel in worten ausgedrueckt macht folgendes:

man gibt also einen kreismittelpunkt und einen radius vor. entlang des kreises integriert man alle grauwerte des bildes auf. das ergebnis wird normiert.

dann macht man diesen kreis ein wenig groesser. man integriert wieder alle grauwerte entlang des kreises auf und normiert das ergebnis.

die normierung ist dazu da, die ergebnisse vergleichen zu koennen. ein groesserer wert bedeutet also, dass man mehr dunkle pixel auf dem kreisring liegen hat. jetzt interessiert aber nicht der absolutwert der grauanteile, sondern der kontrast. daher bildet man die ableitung in r-richtung... also vom kreismittelpunkt weg und fängt damit die änderung der grauwerte ein beim vergrößern des kreises.

das ganze rundet man ein wenig ab mit dem gauss... das macht die übergänge etwas weicher (damit lässt sich steuern, in wie weit der kreis leicht innerhalb der pupille landet).


diesen vorgang macht man fuer jede x,y koordinate als kreismittelpunkt und sucht sich den mit dem besten ergebnis aus. das ist also mit einem suchalgorithmus verbunden.

und somit hast du ein kantenerkennungssystem gebastelt.

lg
Josey

Josey aktiv_icon

01:49 Uhr, 17.02.2013

Antworten
So ähnlich ist es auch gedacht, es sollen Gradienten entlang dieses Kreises aufsummiert werden, und der Gaussfilter ist für Gradient in X und Y Richtung, also habe ich 2 Werte für den Gradienten die ich aufsummieren muss.

In welcher Art und Weise muss ich diese beiden Gradienten aufsummieren?

Einfach Wurzel(GradientX² + GradientY²)?

Das mache ich gerade und es führt nicht zum gewünschten Ergebnis. In der Durchführung ist soweit ich erkennen kann kein Fehler, es muss irgendwo anders liegen. Ich vermute an einer Fehlinterpretation meinerseits bzgl der "Richtungsableitungen entlang des Kreises"


Leider ist die Fachliteratur zu diesem Thema auch spärlich gesät :(
Antwort
CKims

CKims aktiv_icon

01:59 Uhr, 17.02.2013

Antworten
du musst

(x'y')r (skalarprodukt)

berechnen. wobei r vom kreismittelpunkt weg zeigt und die laenge 1 haben muss. du musst dieses r also immer neu bestimmen, je nachdem wo du dich gerade auf dem kreis befindest. mit x' und y' meine ich die ableitungswerte in jeweils x und y richtung.


wenn du das allerdings so machen moechtest (warum auch immer? helf ich dir gerade bei deiner doktorarbeit? dann muss da aber mein name mit drauf), dann musst du dir noch eine vernünftige normierung ausdenken... da fällt mir jetzt nichts zu ein kurz vor dem schlafen gehen... vielleicht demächst nochmal.


viel erfolg
Josey

Josey aktiv_icon

02:10 Uhr, 17.02.2013

Antworten
Wenn überhaupt dann wird es für ne Bachelorarbeit. Falls das so weiter geht wohl eher nicht.


Danke schon mal ich guck es mir morgen nochmal in Ruhe an
Frage beantwortet
Josey

Josey aktiv_icon

15:08 Uhr, 17.02.2013

Antworten
Hallo, jetzt habe ich meinen Fehler gefunden.


Anfangs dachte ich, etwas an der Umsetzung müsste falsch sein, am Verständnis von "Richtungsableitung entlang eines Kreises". Aber der oben beschriebene IDO(siehe Formel (1) in dem verlinkten PDF) wurde korrekt umgesetzt, es gab keinen Fehler am Verfahren an sich. Das dachte ich nur weil die Pupille nicht korrekt erkannt wurde, obwohl mit genau demselben Bild als Beispiel in einer meiner Quellen gearbeitet wurde.


Der Fehler liegt leider eher daran, dass die Glanzlichter in der Mitte des Bildes dieses Verfahren stören und eine entsprechende Vorverarbeitung (Glanzlicht-Bereinigung) dringend nötig ist.

Dies wird in meiner Quelle auch erwähnt, aber leider erst 1 Kapitel später.

Ich danke trotzdem Allen die sich Zeit genommen haben mir zu helfen, allen voran natürlich CKims. Danke!