Re: Denkhilfe Fonts/MySQL

"Alexander Veit" <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Joerg Rossdeutscher schrieb:

> Ich brauch mal ein wenig Denkhilfe zu einem Ansatz.
> 
> Ich möchte zu einem Font möglichst schnell ähnlich aussehende andere
> Fonts finden. Zu diesem Zweck nehme ich mir einen Buchstaben, erstelle
> mit ImageMagick ein Bild von diesem Buchstaben und stauche 
> das alles ein
> wenig zurecht. Von diesem Bild erstelle ich mir ein "Fingerprint",
> welches bestimmte Eigenschaften numerisch erfasst.
> 
> So ein Fingerprint sieht ungefähr so aus:
> 
> 50-50-50-50-50-50-50
> 
> Ein Font, der sehr ähnlich aussieht, und sich nur ein klein wenig
> unterscheidet, könnte diesen Fingerprint haben:
> 
> 50-50-50-51-49-50-50
> 
> Also einmal +1 (wegen 51) und einmal -1 (wegen 49), macht 
> zusammen eine
> Differenz von "2".
> 
> Zusätzlich muß ich sagen, daß der Fingerprint nicht aus 7 Zahlen
> besteht, wie eben behauptet, sondern aus 64, mit Werten von 00 bis 99.
> 
> 
> So. Und jetzt möchste ich das ganze über MySQL suchen.
> 
> Gibt es eine Möglichkeit, sowas in MySQL zu realisieren, ohne 
> - den Fingerprint in 64 Felder ...
> - ... oder 64 Datensätze aufzusplitten
> - und ohne ALLE Werte auszulesen und die Nachverarbeitung in perl zu
> machen?
> 
> Also, sprich:
> 
> 	SELECT * FROM fingerprints ORDER DESC komische_formel
> 
> ....und ich muß mir nur noch die besten 10 Treffer abholen?

SELECT
 SIMILAR_FONT, SIMILARITY FROM SIMILAR_FONTS
WHERE
 FONT = ? AND SIMILARITY > 0.75
ORDER BY SIMILARITY DESC,

sprich, zu jedem Font eine Liste ähnlicher Fonts (so etwas wie eine
Fontfamilie) zu hinterlegen, wäre vielleicht ein einfacherer Ansatz.

BTW, falls Du eine sinnvolle Kodierung hast, könntest Du die
(Hamming-)Abstände je zweier Fonts programmatisch berechnen und das Ergebnis
zwecks späterer Verwendung in einer Tabelle speichern. Speicheraufwand: N *
(N - 1) / 2, wobei N die Anzahl der Fonts ist.

-- 
Gruß
Alex


-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.