Processing math: 0%
 
Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Kosinus-Ähnlichkeit zweier Vektorzüge

Kosinus-Ähnlichkeit zweier Vektorzüge

Schüler Gymnasium, 12. Klassenstufe

Tags: Ähnlichkeit, Vektor

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
YouWayne

YouWayne aktiv_icon

10:58 Uhr, 03.05.2017

Antworten

Kosinus-Ähnlichkeit bei VektorzügenAuf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden Zum Anfang der Seite springen
Meine Frage:
Hallo,
Ich habe zwei geschlossene Vektorzüge und möchte gerne deren Ähnlichkeit herausfinden.

Meine Ideen:
Ich weiß, dass man mit Kosinus-Ähnlichkeit zweier n-dimensionaler Vektoren berechnen kann, aber geht das auch bei Vektorzügen? Könnte ich alle Vektoren eines Vektorzugs als Komponenten eines Vektors als Complexe Zahl darstellen und damit habe ich ja zwei vektoren zum berechnen aber würde dabei ein brauchbares Ergebnis herauskommen? Und wie kann ich diesen Vektor mit komplexen Zahlen dann interpretieren?

Danke schon mal im Vorraus smile
Hierzu passend bei OnlineMathe:

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
Matheboss

Matheboss aktiv_icon

12:48 Uhr, 03.05.2017

Antworten
Kannst Du uns erklären, was das soll?

Kosinus-Ähnlichkeit bei VektorzügenAuf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden Zum Anfang der Seite springen

Außerdem Doppelpost!
YouWayne

YouWayne aktiv_icon

13:52 Uhr, 03.05.2017

Antworten
Also danke erst mal für deine Hilfe aber ich glaube es gab ein Missverständnis. Hier noch mal genauer:
Ich habe eine Liste an Punkten und approximiere ein Polygon. Nun habe ich zwei Polygone mit der gleichen Anzahl an Ecken. Nun möchte ich ein Maß für die Ähnlichkeit beider Polygone herausfinden, unabhängig von Translation, Rotation und Skalierung. Die Polygone selbst sind zweidimensional, nur mein Lösungsansatz war, aus dem Polygon einen Vektorzug zu machen und die Kosinus-Ähnlichkeit zu berechnen. Aber ich weiß nicht, ob das mit Vektorzügen geht oder ob es eine bessere Lösung gibt.
Antwort
ledum

ledum aktiv_icon

13:58 Uhr, 04.05.2017

Antworten
Hallo
man müsst doch zuerst definieren , was ein Maß für die Ähnlichkeit ist. wenn es über Winkel geht (wie dein suggeriert) sind alle Rechtecke, unabhängig vom Seitenverhältnis ähnlich?
wenigstens für einfache Figuren, wie oder 4-Ecke solltest du sagen was ein Mass für die Ähnlichkeit ist. Was ist Kosinusähnlichkeit?
Gruß ledum
Antwort
Roman-22

Roman-22

14:47 Uhr, 04.05.2017

Antworten
Ich habe zwei geschlossene Vektorzüge und möchte gerne deren Ähnlichkeit herausfinden.
Mir ist keine Definition für Ähnlichkeit solcher "geschlossener Vektorzüge" bekannt (was nicht heißt, dass es nicht doch eine gibt).

Daher ist erst dafür eine Definition zu (er)finden, bevor man daran geht, ein geeignetes Maß dafür zu beschreiben.

Keine Ahnung, was du vorhast, aber vielleicht hilft dir
www.dbs.informatik.uni-muenchen.de/~brecheis/publications/diss-talk.pdf
bei deinem Unterfangen.

@ledum
Was ist Kosinusähnlichkeit?
Eins von mehreren möglichen Maßen für die Ähnlichkeit zweier Vektoren.
Siehe zB
de.wikipedia.org/wiki/Kosinus-%C3%84hnlichkeit
kontext.fraunhofer.de/haenelt/kurs/folien/Haenelt_VektorAehnlichkeit.pdf
YouWayne

YouWayne aktiv_icon

18:12 Uhr, 04.05.2017

Antworten
Also ich bin nicht sonderlich gut in Mathe, ich interessiere mich eher für Informatik, also tut es mit leid, wenn ich nicht alles direkt verstehe. Ich würde das Maß so beschreiben, wie wir Menschen es sehen. Wenn ich zwei Polygone/Figuren in Form von . einem Auto vor mir habe, kann ich kleinste Unähnlichkeiten erkennen oder eben nicht. Um besser mit den beiden Polygonen/Figuren meinem Fall immer Ecken) rechnen zu können, habe ich sie in einzelne Vektoren umgewandelt. Ich glaube das ist noch keine Vektorkette (hatten Vektoren noch nicht im Unterricht). Nun könnte man die Ähnlichkeit berechnen, ich habe mir in der Schule vorhin noch mal ein paar Gedanken gemacht und habe eventuell folgende Lösungsvorschläge:
Gegeben sei eine Menge an Vektoren A und eine gleichgroße Menge an Vektoren

1. Den Kosinus von und An und Bn berechnen. Liegen sie aufeinander (gleiche Richtung) erhalten wir einen Wert von 1. Wenn ich nun den durchschnitt aller Vektorpaare berechne und 1 erhalte, sind die beiden Figuren identisch. Jedoch geht das nicht wenn eine Figur um . 27° geneigt ist, weil dadurch alle Vektorpaare ebenfalls um 27° unterschiedlich sind, außer ich könnte das irgendwie relativieren.

2. Den Kosinus jeder Ecke der eigenen Menge an Vektoren zu berechnen. Dadurch hätte ich den Winkel aller Ecken in Figur1 und Figur2. Wenn ich diese beiden vergleiche hätte ich ebenfalls ein Maß. Also und An und An+1 vergleichen mit und Bn und Bn+1. Diese Lösung wäre zudem Rotationsinvariant.

Wenn gegenüberliegende Seiten der Figuren parallel sind, können sie gestreckt werden. Das bedeutet, wie ledum bereits gesagt hat, alle Rechtecke sind gleich. Für dieses Problem habe ich leider noch keine Lösung gefunden.
Antwort
Roman-22

Roman-22

22:01 Uhr, 04.05.2017

Antworten
Nun könnte man die Ähnlichkeit berechnen,
erst, wenn geklärt ist, was genau man darunter verstehen möchte!

Offen gestanden hab ich keine Ahnung, worauf du hinaus willst!

YouWayne

YouWayne aktiv_icon

18:06 Uhr, 05.05.2017

Antworten
Hm ich dachte, das geht aus meiner Beschreibung etwas hervor. Ich habe noch keine genaue Angabe für Ähnlichkeit. Zusammengehörende Vektoren von Vektormenge A und also . und haben die selbe Richtung und Länge, dann sind sie gleich(Maximale Ähnlichkeit). Jegliche Abweichungen einer oder mehrerer, bis aller zusammengehörender Vektoren verursachen eine Minderung der Ähnlichkeit. Jedoch sollte dies Rotations- und Skalierungsinvariant sein (nicht ein Vektor einer Menge wird rotiert/skaliert sondern alle). Im Anhang ist ein Bild, wobei beide Vektormengen(Figur oben und Figur unten) eine sehr hohe Ähnlichkeit besitzen. Man stelle sich jede Linie mit einer Pfeilspitze in Laufrichtung nach rechts vor.

HH
Antwort
Roman-22

Roman-22

18:40 Uhr, 05.05.2017

Antworten
Ich kann mir nicht vorstellen, dass du dabei mit Kosinusähnlichkeit weit kommen kannst.
Eher noch durch Bestimmung der Fourierkoeffizienten der Polygonzüge und Einteilung derselben in Äquivalenzklassen. Ist aber nicht mein täglich Brot.
Leg dir mal ein paar Bücher zum Thema Mustererkennung und Bildverarbeitung zu - da solltest du eigentlich zu dem Thema fündig werden.

Vielleicht hilft auch schon
lmb.informatik.uni-freiburg.de/lectures/mustererkennung/Videoaufzeichnungen
Kapitel Lageinvariante Konturbilderkennung

Vielleicht interessiert dich auch
web.fhnw.ch/plattformen/modul-bver/unterlagen/08_mustererkennung.pdf
dort gehts zwar weniger um Konturen, aber es werden Ähnlichkeitmaße vorgestellt.


YouWayne

YouWayne aktiv_icon

19:04 Uhr, 05.05.2017

Antworten
Danke, aber ich glaube das ist mir für ein Schulprojekt zu hoch. Lässt sich da nicht doch etwas mit elementarer Vektorrechnung machen? Du kannst dir ja mal das anschauen: www.codeproject.com/Articles/196168/Contour-Analysis-for-Image-Recognition-in-C
So wie ich das erkenne, wird hier auch Kosinus-Ähnlichkeit verwendet, aber ich weiß nicht warum mit komplexen Zahlen. Vielleicht gibt es ja eine ähnliche oder andere Lösungen in diesem Rahmen.

Ich habe mich zudem vertan, parallele Vektoren können nicht gestreckt sein, da alle durch die Approximation gleich lang sind. Also ist auch nicht jedes Rechteck gleich.
Antwort
Roman-22

Roman-22

20:50 Uhr, 06.05.2017

Antworten
Nun, du hast ja bisher noch nicht verraten, worums dir geht und wofür du die ganze Sache benötigst.
Wenn dir Fourier zu aufwändig ist, dann kannst du dich ja an den Artikel, auf den du da verlinkt hast, halten.
Der sieht ja nach schnellem Überfliegen ganz brauchbar aus und auch wenn ich mir nicht die Zeit genommen, mich da einzulesen, denke ich, dass die Berechnungen einfach aus Bequemlichkeit mit komplexen Zahlen durchgeführt wurden.
Auch ich beschreibe geometrische Sachverhalten gern bzw. führe geometrische Beweise bevorzugt mit komplexen Zahlen. Viele Dinge sind einfach wesentlich kürzer zu beschreiben und sind einmal die Grundrechnungsarten für implementiert, so ist auch eine Programmumsetzung einfacher. ZB ist eine Drehung in kartesischen Koordinaten eher aufwändig zu beschrieben. In ist das einfach eine Multiplikation mit einer komplexen Zahl (mit dem Betrag .

Viel Erfolg für dein Projekt!

YouWayne

YouWayne aktiv_icon

13:48 Uhr, 07.05.2017

Antworten
Oh, also in meinem Projekt geht es um Objekterkennung. Ich mache ein Bild, wende verschiedene Filter an und extrahiere die Konturen. Daraus approximiere ich ein Polygon(alle Seiten sind gleich lang) und alle Polygone haben die gleiche Anzahl an Ecken. Bis jetzt habe ich zwei Polygone die ich vergleichen will in Vektoren umgewandelt und ihre Winkel vergleichen. Das scheint auch zu funktionieren, aber ich würde es gerne Professioneller machen. Das in dem Artikel habe ich mal mit normalen Vektoren versucht aber hat nicht funktioniert, ich glaube das geht nur mit Komplexen Zahlen. Außerdem habe ich Bedenken wegen der Lizenz des Erstellers des Artikels. Wenn ich eine gute allgemeine Beschreibung des Artikels hätte, warum er komplexe Zahlen nimmt und wie die Formel zustande kommt, so dass man argumentieren kann, dass es sich um elementare Vektorrechnungen handelt, dann würde ich es in Betracht ziehen diese Methode zu verwenden. Aber auch Fourier wäre möglich, hätte ich eine einfache Beschreibung. Vielleicht möchtest du mir ja dabei helfen.

Und Danke :-)
Antwort
Roman-22

Roman-22

15:45 Uhr, 08.05.2017

Antworten
Grundsätzlich kannst du natürlich alles, was da mit komplexen gerechnet wird, auch umsetzen und mit Vektoren rechnen. Statt der Multiplikation zweier komplexer Zahlen implementierst du zB eine Funktion, die einen Vektor um den Betrag eines zweiten Vektors streckt und um den Neigungswinkel des zweiten Vektors dreht, etc.
In dir Fourier-Analyse müsstest du dich wohl erst gründlich einarbeiten und das sprengt den Rahmen der Schulmathematik wohl eindeutig.

Da deine Objekte ja offenbar garantiert immer die gleicher Eckenzahl haben, wäre eine allgemeines Verfahren ja ohnedies viel zu aufwändig und ein mit Kanonen auf Spatzen schießen. Das scheint mit dein Ansatz mit dem Winkelvergleich durchaus sinnvoll zu sein.

YouWayne

YouWayne aktiv_icon

19:39 Uhr, 08.05.2017

Antworten
Okay, danke. Dann mache ich erst ein mal das mit dem Winkelvergleichen. Wenn du möchtest kannst du mir ja helfen, als Optimierung, das, was bei dem Projekt mit komplexen Zahlen geschieht irgendwie allgemeiner zu erklären oder mit reellen Zahlen umzusetzen. Ich würde nämlich gerne mehrere Ansätze vorstellen und die Effizienz vergleichen.
Antwort
Roman-22

Roman-22

23:11 Uhr, 08.05.2017

Antworten
Dazu, mich in diesen Artikel vollständig einzuarbeiten, fehlt mir leider die Zeit.
Aber wenn du konkrete Fragen zu dem einen oder anderen Detail hast, kannst du sie ja wieder hier stellen.
YouWayne

YouWayne aktiv_icon

11:40 Uhr, 09.05.2017

Antworten
Okay, also seine Formel wie er die Ähnlichkeit berechnet, sieht außeinandergefriemelt so aus wie die Formel für den Kosinus zweier mehrdimensionaler Vektoren. Er erwähnt auch öfters das Wort dimensionen. Aber seine beiden "ContourVectors" bestehen aus komplexen Zahlen welche man als Dimensionen oder als Vektoren ansehen kann. Er macht aus dem Polygon komplexe Zahlen die er als Vektoren ansieht, aber zum berechnen sieht er die als Dimensionen. Ich weiß nicht ob man das mit normalen Vektoren darstellen kann. Das Ergebnis der Kosinusberechnung der beiden Vektoren ist ebenfalls eine komplexe Zahl. Nimmt man den Betrag des normalen, reellen Kosinuses zweier identischen Vektoren erhält man manchmal 1 und manchmal je nachdem wie sie rotiert sind. Ist das Ergebnis des Kosinuses eine komplexe Zahl und nimmt den Betrag erhält man immer 1 wenn die beiden Vektoren identisch sind, egal bei welcher Rotation. Und dabei weiß ich nun auch nicht wie man das mit reellen Vektoren hinbekommen kann.
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.