Musterkennung und Musterbegradigung
-
Hallo!
Ich bin grade dabei, aus Bildern, den Umriss des Objektes (in dem Fall ein Kammmolch, sone Art Echse) herauszubekommen.
So weit bin ich schon:
(Grüne Punkte -> linker Rand, blaue Punkte -> rechter Rand)http://images1.pictiger.com/images/15/6002704e71f0d41809a8f006f2402015.jpg
http://images1.pictiger.com/images/ee/9c54453ae18900f1fe1e454e9bb696ee.jpgSo, da is also der Rand schon (relativ gut) herausbekommen, aber manche Punkte passen noch nicht gut. Ausserdem will ich eigentlich nur den Bauch des Vieches extrahieren, also sollen Beine abgeschnitten werden (schwanz und kopf kann bleiben).
Mein Problem ist nu, wie kann ich möglichst gut herausbekommen, welche Punkte nicht in den Umriss passen (die Beine stehen zum Beispiel von Körper ab), so dass ich möglichst nur den blossen körper ohne beine als umriss bekomme?
Vielleicht hat ja jemand eine Idee (ich bin noch nich so weit in Statistik usw... ) wie man das gut hinbekommen kannDas problem is, dass die Viecher nich immer gerade liegen, sonst könnte man ja eine Regressionsgerde durch die punkte ziehen und die, die zu doll abstehen rauswerfen.
Vielleicht kann ja jemand helfen
Gruß, Maxi
-
erst mal binarisieren und dan skelettieren und mediane rechnen. dann kannste die beinchen abschneiden
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-119002.html
^schon gelesen ?
-
würde über den grauwert die kanten holen, binärisieren und dann nochmal ne dilatation machen (um die löcher zwischen den kanten rauszubekommen). wenn du die beine loswerden willst kannst du z.b. nach ecken in der sonst runden kante suchen, und an den stellen grad weitergehn.
-
Ich les mir die Bildverarbeitungsmethoden hier im FOrum ma durch.
@korbinian:
Wie erkenn ich denn, ob Punkte von der eher geraden Kante abweichen? Ich hab da zZ noch nich so die Peilung, die Kante is ja nicht immer gerade, sondern ist ja auch mal gebogen, wie im zweiten Bild. Ausserdem will ich nich nur die Kanten, sondern da, wo der Kammmolch so weiß-schwarz gepixelt ist, das gehört nicht mehr zum Bauch, also is da schon die Kante und nicht erst zum Übergang ins ganz helle, das mach ich zZ mit der Varianz der Pixel voneinander, wenn die zu Groß is, is da ne Kante.
-
zunaechst solltest du erstmal das bild binaerisieren, dann hast du schonmal nur noch kante oder nicht kante. mir wuerde da noch eine andere methode einfallen: du koenntest das innere schwarz und das aeussere weiss faerben (z.b. mit region growing) und dann ein verfahren anwenden, das auch als intelligent scissors bekannt ist: du nimmst das bild als graph, wobei jeder pixel zu seinen nachbarn verbunden ist, und die kosten gering sind wenn du einer kante folgst, und hoch, wenn nicht. jetzt machst du eine shortest path suche von einem punkt auf der kante aus, und setzt sequentiell den neuen zielpunkt. dann wanderst du erstmal an der kante entlang, aber wenn du dann z.b. ein soches bein fertig umrandet hast, wird der kuerzeste weg dann das bein abschneiden, da der weg gerade durch billiger ist, als das bein abzulaufen, obwohl die kosten entlang des gradienten geringer sind.
wenn das zu verwirrend ist, versuch ichs nochmal langsam zu erklaeren
-
hey, das hört sich auf den ersten BLick (also "Leser") gut an
Ich habs jetzt so, dass alles, was so eher hell ist vollkommen weiss gemacht wird (255, 255, 255) und ebenfalls die Bereiche, wo die Streuung der Pixel zu groß ist, also die Varianz (da, wo der Bauch so weiß-gepunktet ist). Dadurch is dann nur noch der Schwanz, die Beine und der Bauch schwarz, der Rest ist weiss. Ich versuch heute Nachmittag mal was über "intelligent scissors" zu suchen, das hört sich auf alle Fälle schonmal wirklich gut anMaxi
-
doppelpost wegen lag...