Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Durchlaufrichtung eines Polygons erkennen (https://www.delphipraxis.net/115903-durchlaufrichtung-eines-polygons-erkennen.html)

Medium 19. Jun 2008 19:44

Re: Durchlaufrichtung eines Polygons erkennen
 
Mal so am Rande: Wie wirkt sich eine Orientierungsvertauschung überhaupt in Fourierdeskriptoren aus? Nicht, dass wir hier viel zu viel machen, und nachher ists da einfach durch Vorzeihen/Phasenverschiebung/Spiegelung erkennbar :). Lage und Drehung sind ja egal dabei, nur an die Wirkung der Orientierung kann ich mich nicht mehr erinnern.

@Jpeg2000: Das erklärt einiges, thx :)

Nikolas 19. Jun 2008 19:51

Re: Durchlaufrichtung eines Polygons erkennen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Da bin ich mir ehrlich gesagt nicht sicher, da ich keine Werte habe, um meinen Algorithmus für die Deskriptoren zu testen.
Im Anhang noch mal ein einfacheres Bild. Grün die Koeffizienten, Rot die Deskriptoren. Die dicken Linien markieren die Laufrichtung, der Gaussalgorithmus funktioniert jedenfalls schon mal bei diesen beiden.


Danke für eure Hilfe (besonders an das Medium)

Im Anhang gibt's ein neues Beispiel, rot die Deskriptoren, die doch sehr schön aussehen.
Der Code ist in Java, falls jemand Lust hat, ein paar der Funktionen nach Delphi zu portieren, werde ich den Code hier veröffentlichen.

Medium 19. Jun 2008 22:18

Re: Durchlaufrichtung eines Polygons erkennen
 
Ich meinte eher, dass du mal versuchen könntest Koeffizienten/Deskriptoren für ein und die selbe Kontur, ein Mal im und ein Mal gegen den Uhrzeigersinn. Wenn man die Deskriptoren dann vergleicht, ist der Unterschied evtl. sehr laufzeiteffizient zu ermitteln, so dass du damit ganz einfach gleiche Konturen erkennen kannst, die sich in ihrer Orientierung unterscheiden. Im Grunde ist es ja eine Spiegelung.

Und nicht lage fragen, ob der Code interessant wäre! Das ist seit längerem mal wieder ein echt interessantes Thema in der DP (:love: Geometrie/LA), und ich würde mich gerne mal daran versuchen das zu portieren.

Nikolas 20. Jun 2008 07:02

Re: Durchlaufrichtung eines Polygons erkennen
 
Das kann ich mal machen.
Nur leider habe ich noch Fehler drin. Beim final.JPG sind manche Konturen schon sehr schön. (z.B. die ganz rechts und ganz oben), die unterste und rechts oben sind aber noch gegeneinander verdreht.

Auch weiss ich nicht genau, wie ich die Deskriptoren vergleichen soll. Mein erster Ansatz ist einfach die Differenz für jeden Deskriptor zu nehmen und dann über die Beträge zu summieren. Da liegen bei dem gegebenen Bild aber alle Differenzen zwischen 0.3 und 2 (c_5,...,c_5 benutzt), wodurch eine Klassifikation recht schwierig wird. Auch wenn ich mehr (100) Koeffizienten benutze, werden die Werte nicht besser.

Wenn ich einen sauberen Klassifikator habe, werde ich den Code mal hochladen. Die Portierung dürfte nicht allzu schwierig sein, ich benutze jedoch eine Klasse für Komplexe Zahlen, da müsstest du mal schauen, wo du sowas schönes für Delphi findest.

Medium 20. Jun 2008 18:32

Re: Durchlaufrichtung eines Polygons erkennen
 
Eine Lib für komplexe Zahlen hab ich schon länger fertig rumliegen, die sollte sich ja anpassen lassen.

Was die Bestimmung von Ähnlichkeit angeht, so könnte evtl. Folie 16 dieser Powerpoint Präsentation hilfreich sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz