-         

Ergebnis 1 bis 9 von 9

Thema: Ellipsenerkennung durch Hough-Transformation (darstellen?)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17

    Ellipsenerkennung durch Hough-Transformation (darstellen?)

    Anzeige

    Hey!

    Wenn ich eine Ellipsenerkennung durch die Hough machen will hab ich ja die unbekannten X + Y + a (Breite der Ellipse) + b (Höhe der Ellipse).

    Habt ihr ne Idee wie man das grafisch darstellen kann dann? Bei der Linienerkennung sind es ja nur m (Steigung) und t (Y-Achse) die man dann in einem m-t-Diagramm darstellen kann, aber wie mein oberes Bsp?

    Noch etwas, wie würdet ihr eine gewisse unschärfe in die Erkennung hineinbringen? An einem Punkt die Breite/Höhe variieren, oder einfach die "Nachbarellipse" mit einbringen?


    P.S.: Ich mach für einzelne Themen immer einzelne Threads auf, hoffe das ist OK, dient bei der Suche der Übersichtlichkeit.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Du hast also im Prinzip 4 Dimensionen, die du darstellen willst. Eine Möglichkeit wäre, das ganze im 3D-Raum darzustellen, und als vierte Dimension noch Farben hinzu zu nehmen.

    Habe das ganze übrigens kürzlich auch gemacht, aber mit Kreisen. Läuft mittlerweile mit der Gameboy-Cam auf einem AVR-Mikrocontroller.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Hey!

    Die Darstellung ist eigentlich mehr für mein persönliches Verständnis...ist nicht das wichtigste. Hier auf dem Screenshot sieht man wie weit ich bis jetzt bin. (links das Ausgangsbild mit eingezeichneter gefundener Ellipse)

    Das Problem wird jetzt noch sein die Unschärfe reinzubringen, die verschiedenen Radiusgrößen. Denn die größe eines Gesichts is ja nich immer bekannt und auch nicht immer "elliptisch".


    Noch ne Frage, dass dort auf dem Screeni ein Maximum ist erkenn ich ja, aber wie kann ich dass denn mit dem PC rausfinden? Was ich im Moment mach ist einfach nur Pixel für Pixel eine neue Testellipse zu fahren und beim größten Wert weiß er dass eine Ellipse da is.

    Wo speicher ich denn die Ergebnisse am besten hinein? In ein Array (wie?), in ne Matrix?
    Ich progge übrigens in VB.

    Grüße!

    p.s.:
    Wenn das funktioniert werd ich mich nochmal dran machen, die Farbtrennung zu verbessern, anscheinend gibt es ja gut Farbfilter die die Hautfarbe filtern aber erstmal der Rest
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken hough_1.jpg   hough_3.jpg   hough_2.jpg  

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2006
    Beiträge
    559
    Noch ne Frage, dass dort auf dem Screeni ein Maximum ist erkenn ich ja, aber wie kann ich dass denn mit dem PC rausfinden?
    das versteh ich nicht ganz, was willst du mit dem PC rausfinden?
    wenn das Gesicht nicht ganz auf dem Bild sein muss gibt es theoretisch kein Maximum, ansonsten ist es die Bildgröße


    Wo speicher ich denn die Ergebnisse am besten hinein?
    welche Ergebnisse?


    ach und was für Gesichter?
    ich seh auf den Bildern nur rote unförmige Sachen

    sorry für die Fragen aber ich versteh nicht ganz worauf du hinaus willst

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Tach!

    Ich will rausfinden, wo eine Ansammlung von Maxima liegt.

    Auf der linken-Seite siehst du jeweils das Ausgangsbild, dass in HSV umgewandelt wurde, danach der Sobel-Operator, auf der rechten Seite meine "Hough-Transformation" (ich weiß nicht ob die wirklich genau so funktioniert wie ichs gemacht hab...), auf jeden Fall untersucht er für jeden Pixel im Bild um sich rum wieviele Punkte auf einer Gedachten Ellipse (a/b unten in den Textfeldern angegeben) schwarz sind. Je mehr, desto wahrscheinlicher dass es eine Ellipse ist. (wenn bekannt ist dass es eine Ellipse gibt, ist natürlich das Maximum die Ellipse)

    Nur wie man jetzt sieht ist eben noch viel "Müll" in der Umgebung, was sich auch nie ganz vermeiden lassen wird wenn man nur den H-Kanal nimmt (deswegen muss ich das auch noch verbessern später).

    Was ich jetzt mit dem PC erkennen will lässt sich vllt am besten am untersten Bild zeigen. Gefunden wird eigentlich nicht wirklich der Mittelpunkt der dicken Ellipse (die aus mehreren dünnen besteht), sondern die erste gefundene Ellipse. Auf der rechten Seite sieht man jedoch einen roten Punkt, die Anhäufung der Maxima...
    (d.h. nachher hab ich ein Array Akkumulator (X,Y,a,b) = wieviele Pixel sind um den Punkt X/Y auf einer Ellipse a/b schwarz)

    Also wenn ihr ne Idee habt wär gut, ansonsten werd ich mal weiter ausprobiern

    Gruß

    P.S.: Sorry wenn ich mich nich so verständlich ausdrücken kann, war noch nie meine Stärke

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Alter
    39
    Beiträge
    43
    Hallo!
    Wie wärs mit einer Schwellenerkennung? -> Der ganze "schwache" Mist im Ergebniss deiner Transformation fliegt dadurch raus. Danach so'ne Art Schwerpunktberechnung bzw. Median in 2D.
    Gruß

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Hey!

    Braucht man für eine Schwerpunktberechnung nicht Vektoren oder sowas in der Art?

    Grüße!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Alter
    39
    Beiträge
    43
    Malzeit
    Ne!
    Du ermitteltst die Randverteilung. Dann für jede Achse separat den µ-wert berechen. Siehe 2-D-Wahrscheinlichkeitsverteilung.
    Gruß

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Alter
    39
    Beiträge
    43
    Guten Morgen!
    _
    f1(x)= \ a(x, y)
    /_
    y

    _
    f2(y)= \ a(x, y)
    /_
    x

    Und dann über f1 und f2 jeweils den Mittelwert bilden. Oder du suchst nur die Maximas, dann kannst du auch mehrere Elipsen auf dem Bild erkennen.
    mfg Torr Samaho 2

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •