Ich habe ein Python-Programm, wo Menschen einfache Linienzeichnungen mit einem Touchscreen zeichnen können. Die Bilder werden auf zwei Arten dokumentiert. Zuerst werden sie als tatsächliche Bilddateien gespeichert. Zweitens zeichne ich bei jeder Auffrischung 4 Informationsteile auf: den Zeitpunkt, ob der Kontakt mit dem Bildschirm zu der Zeit hergestellt wurde (1 oder 0), die x-Koordinate und die y-Koordinate.Berechnung der Ähnlichkeit zwischen zwei Strichzeichnungen
Was ich gerne tun würde, ist ein gewisses Maß dafür, wie ähnlich eine Zeichnung zu einer anderen Zeichnung ist. Ich habe ein paar Dinge ausprobiert, einschließlich einfacher euklidischer Entfernung und Ähnlichkeit zwischen jedem Pixel, und ich habe mir Frechet-Abstand angesehen. Keine von diesen kann geben, wonach ich suche.
Die Probleme sind, dass jede Zeichnung eine andere Anzahl von Punkten haben kann, ein Segment nicht immer sofort mit dem nächsten verbindet, und die Reihenfolge der Punkte ist irrelevant. Zum Beispiel, wenn Sie und ich beide etwas so einfaches wie eine Eistüte zeichnen, könnte ich zuerst Eiscreme zeichnen, und Sie könnten zuerst den Kegel zeichnen. Wir können ein identisches Endergebnis erhalten, aber viele der intuitivsten Metriken würden komplett weggeworfen werden.
Irgendwelche Ideen, die jemand hat, würde sehr geschätzt werden.
Dies ist ein Problem Formulierung Frage und keine spezifische Programmierung Frage. – Leo
Was ist mit Skalierung nach oben oder unten, Übersetzen und/oder Drehen? Ist ein Eiskegel kein Kegel mehr, wenn er auf der Seite und größer ist? –