Hmm.. ich hatte mir unter dem Skeleton vorgestellt, dass du eher sowas wie in folgendem Bild machst, also bei sauber vorverarbeiteten Bildern:
->
http://imgur.com/dt37W8D
Aber da die Daten sind wegen dem Gradienten eh nicht so hunderpro dafuer geeignet.
Uebrigens nicht die schlechtesten Daten, relativ stabile Belichtung und eindeutige Merkmale
Ja, man koennte hit und miss rotationsunabhaengig machen. Lass dich mal von
http://homepages.inf.ed.ac.uk/rbf/HIPR2/thin.htm und weiterfuehrenden Bildern inspirieren.
Bei deinen Bildern kann man aber einfach auch die IMAQ-eigenen Funktionen verwenden, das geht sehr schnell zu programmieren.
Ne Idee ist folgende: Du interpretierst die "eine" Kante als ein sehr langes, duennes Objekt, also einen Schlauch mit fast parallel verlaufenden Aussenkonturen. Diesem "rennst" du nach, und beobachtest dabei die Kruemmung, und wenn da ein scharfer Wendepunkt ist, weisst du, dass du am Ende bist.
Dafuer gibt es das Contour Analysis VI, das berechnet dir eine "curvature", sh Vision Concepts Manual
"The curvature of a contour is calculated from the edge points of the contour and by the input kernel size. For each point along the contour the algorithm selects two additional points at half the kernel width before and half the kernel width after the current point. The algorithm fits a cubic b-spline to the three points. Curvature represents the inverse radius of the circle inscribed by the cubic b-spline at the current point. Curvature can be negative. A negative curvature indicate a curve to the left along the search direction. If the current point is too close to either end of the array to choose the additional points, the curvature is calculated as 0."
Von diesem Mass berechnest du den Extrempunkt (nicht das Maximum, da nicht determiniert ist, in welche Richtung du den Schlauch abrennst - koennte man mit ROI und Suchlinie festlegen, aber dann muesste ich druaber nachdenken
.. geht auch ohne das Normieren, das ich im vi gemacht hab.. mhmm, das wuerd ich ueberarbeiten). Aber genau an der Stelle ist auf jeden Fall dein gesuchter Punkt.
Falls deine Probedaten irrefuehrend sind, und nicht immer beim Bildrand starten, hast du evtl. 2 lokale Maxima, und musst entscheiden, wo der richtige ist. Aber das ist ein anderes Thema.
Die Laufzeit des Algos ist auf meinem PC im ms-Bereich ->
http://i.imgur.com/I7KrFOz.png
aber ich hab auch einen halbwegs vernuenftigen PC. Da ist noch viel Optimierungspotential drinnen, wenn du da was tun musst.
Schoene Gruesse,
Birgit