(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Krümmung einer Linie
6. Aug 2009, 06:24
Hi Medium,
vor gefühlten 100 Jahren habe ich ein ähnliches Problem für das Bundesamt für Materialprüfung gelöst. Dort wurden Biegungskennlinien von künstlichen Gelenken erfasst. Dabei sollte die Punkteschar, die in etwa einer Hystherese gleicht, auf die relevanten Punkte reduziert werden. Eine Ecken/Kantenerkennung habe ich damit jedoch nicht hinbekommen, dazu bedarf es vermutlich eines anderen Verfahrens.
Meins war sehr einfach gestrickt. Ausgehend von N Punkten habe ich immer einen Punkt entfernt, und zwar den, bei dem sich das Gesamtbild der Kurve durch Wegnahme nicht wesentlich geändert hat. Das "Gesamtbild" der Kurve ist eine Ausgleichsspline. Ich gehe also alle Punkte durch (2..N-1) und erstelle für die jeweils N-1 Punkte (Also alle ohne den Kandidaten) einen Ausgleichsspline und schaue nach, ob und wie genau dieser Ausgleichsspline den weggenommenen Punkt approximiert. Von allen Kandidaten eliminiere ich nun den, der am 'unwichtigsten' ist.
Das wiederhole ich so lange, bis ich keinen Punkt mehr entfernen kann, ohne das Gesamtbild wesentlich zu verändern. Das hat bei hinreichend glatten Kurven erstaunlich gut funktioniert.
Du könntest hier ähnlich vorgehen: Nimm Dir einfach immer M aufeinanderfolgende Punkte und prüfe, ob die durch die M Punkte führende Ausgleichsgerade durch Wegnahme einzelner Punkte wesentlich verändert wird. Wenn nicht, sind diese Punkte eben 'unwichtig', tragen also nicht wesentlich zur Beschreibung der Form bei.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|