Laden...

Kurve anfitten/Interpolieren

Erstellt von Gimmick vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.645 Views
G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 7 Jahren
Kurve anfitten/Interpolieren

Moin,

ich habe hier in meinem Uni Projekt diverse Bilder mit ihren jeweils eigenen Problemchen auszuwerten und komme an einer Stelle nicht so richtig weiter.

Und zwar habe ich die zu suchende Form schon soweit erkannt und ausgearbeitet, dass ich eine sortierte Liste mit allen Koordinaten habe. Ich kann den Rand der Form also quasi ablaufen.

Jetzt soll an einer Stelle eine senkrechte zu dieser Kante bestimmt werden.
Die Kante ist gebogen, weißt Lücken auf (der Grauwert im Bild varriert) und ab und an gibts Ausreißer bei den Koordinaten (auch wegen den schwankenden Grauwerten).

Um da eine Senkrechte an einem Punkt x/y ziehen zu können, müsste ich die "Messpunkte", aus meiner Sicht, irgendwie glätten und eine, zumindest stückweise stetig diff.bare, Funktion anfitten.

Ich bin mir jetzt aber absolut unschlüssig wie man da am besten vorgeht.
Es gibt ja diverse Methoden, woran mache ich denn fest, welche ich idealer Weise (versuche 😄) einbaue?

Die Kurve sieht in etwa so aus wie das Bild im Anhang und hätte ~1000 bekannte Punkte.

Bei einem Polynomfit mit kleinsten Fehlerquadraten hätte ich ein Polynom 4. Grades genommen.

Aber es gibt ja auch noch Lagrange oder Newton Interpolation.

Wie geht man bei sowas am geschicktesten vor? ^^

5.657 Beiträge seit 2006
vor 7 Jahren

Hi Gimmick,

also ich werde aus deiner Problemstellung nicht so richtig schlau. In welcher Form liegt denn die Kurve bei dir vor? Sind das Pixel in einem Bitmap oder hast du bereits die Koordinaten der Punkte auf der Kurve extrahiert? Falls du bereits die Koordinate der Punkte vorliegen hast, würden sich Splines für die Rekonstruktion der Kurven anbieten. Damit kannst du dann auch die Senkrechte zu einem beliebigen Punkt auf der Kurve berechnen.

Anonsten wäre es hilfreich, wenn du mal genauer beschreibst, welche Schritte du bereits umgesetzt hast, und welche du ausprobiert hast.

Weeks of programming can save you hours of planning

G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 7 Jahren

Hallo,

ja genau. Ich habe bereits alle Koordinaten der Kurve extrahiert.

Welche Splinesorte empfiehlt sich denn da? Ein kubischer Spline und dann soviele Stützstellen nehmen, dass der Fehler annehmenbar klein wird?

W
872 Beiträge seit 2005
vor 7 Jahren

Ich würde mir MathNnet anschauen.
Da gibt es allerhand verschiedene Implementierungen von Kurven Fitting auch für Cubic Splines.
Im Zweifel musst Du einfach verschiedene Möglichkeiten ausprobieren, da man so etwas schlecht im voraus sagen kann.

G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 7 Jahren

Ich würde mir
>
anschauen.
Da gibt es allerhand verschiedene Implementierungen von Kurven Fitting auch für
>
.
Im Zweifel musst Du einfach verschiedene Möglichkeiten ausprobieren, da man so etwas schlecht im voraus sagen kann.

Sooo, ein paar Tage später...

Habe ausprobiert: Natürlichen-kubischen Spline, Bezier-B-Spline und Regression dritten Grades.

Regression is der Gewinner 😄

W
872 Beiträge seit 2005
vor 7 Jahren

Stellst Du die Regression auch grafisch da?
Wenn ja, würde ich mich interessieren, wie Du das machst. Schwanke noch etwas zwischen WPF oder Google Charting - da würde mich Deine Erfahrung interessieren.

G
Gimmick Themenstarter:in
154 Beiträge seit 2015
vor 7 Jahren

Hallo,

ne ich nutze die Regression nur zum Glätten von "Messpunkten" und für "quasi-subpixelgenaue" Berechnung.

Wenn ich es doch noch darstellen sollte, dann direkt im Bild als Kurve.