Joerg Rossdeutscher schrieb:
Am Sonntag, den 26.12.2004, 14:40 +0100 schrieb Kai Hauser:
Joerg Rossdeutscher schrieb:
00,50,99 sind nur Beispiele gewesen. Ich definier den Fingerprint jetzt mal ganz genau. Er hat genau die Form:
XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX
wobei jedes XX-Pärchen ein Integer zwischen(!) 0 und 99 ist.
64 Felder mit Werten zw 0 und 99: 100^64 verschiedene Werte(!)
Hm?
400.000 Fonts. Jeder mit 52 Zeichen [a-zA-Z]
Macht 400.000 x 52 Fingerprints/Datensätze.
Was ich ja vermeiden wollte, war, für jeden der 64 Einzelwerte ein Feld anzulegen, aber selbst dann kommen wir auf 400.000 x 52 x 64 Fingerprint"werte".
Unangenehm viel, aber kein 100^64.
ok letzter versuch *g* Stichwort: _Zahlensysteme_ zu vereinfachung, schreib einfach 64 mal 99 nebeneinander: 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 da jedes XX von 0-99 (100 Werte) geht, hast du 100^64 verschiedene Werte. um genau zu sein wären es dann also 100^64 * 400.000 * 52 Werte insgesamt.
Ich würde mysql, wenn überhaupt, als reinen Datenspeicher benutzen. Mit Perl die Daten auslesen und analysieren.
Das tue ich ja schon, das klappt auch, ist aber zu lahm. Ich brauche eine Vorauswahl. Da hat sich hier ja inzwischen was nettes ergeben.
genau das ist was ich im ersten Reply geschrieben habe: optimiere den Vergleichsalgorithmus + Fingerprint. Ich denke es macht nicht wirklich Sinn einen Bildbereich mit einem Prozentwert von 0-99 zu beschreiben, da kann man auch gleich die Bitmaps vergleichen. Als erstes würde ich die Meta-Daten der Fonts auslesen und vergleichen, dann würd ich von allen Fonts ein Bitmap speichern, das muss nur einmal gemacht werden nicht bei jedem Vergleich, dann würd ich zu jedem Font Meta-Angaben generieren, wenn die internen nicht reichen, zb Abstände und Stil. Dann Kategorien bilden. Das ganze in mysql speichern. Um dann von einem eingescannten bzw Font als Bitmap zu vergleichen, würd ich ein zwei Buchstaben bei denen die Unterschiede am ausgeprägtesten sind als Referenz definiern. Dann erkennen welcher Stil es ist (serif oder was) und nur die Kategorie vergleichen. Kein Ergebniss - die Suchkategorien erweitern und nochmal. blabla, das sind alles Denkansätze die dir hoffentlich weiterhelfen, oder auch nicht, ich kenn mich mit Fonts nicht genug aus um dir eine detailierte Lösung zu präsentieren. mach doch mal n announcment auf Sourceforge http://sf.net/people/ vielleicht joint ja der ein oder andere noch deinem Projekt. Was sagen eigentlich die anderen Projektmitglieder haben die keine Ideen? Hier wirst du sehr wahrscheinlich nur Hilfe zu grundsätzlichen Problemen bekommen, da diese Liste sich mit Programmieren unter Linux beschäftigt, Perl und mysql kann man da einschliesen, Fonts eher nicht. Weist du warum mysql "so schnell ist", weil es die Daten binär speichert. Dazu kommen noch die Indizes und die optimierte Strukturierung der Daten, wofür aber der Benutzer zuständig ist.