Bei der Herausforderung 2014 schlägt Michael Stern vor, OCR zum Parsen auf 2014 zu verwenden. Ich möchte diese Herausforderung in eine andere Richtung lenken. Entwerfen Sie mit der integrierten OCR aus der Sprach- / Standardbibliothek Ihrer Wahl das kleinste Bild (in Byte), das in der ASCII-Zeichenfolge "2014" analysiert wird.
Sterns Originalbild ist 7357 Bytes groß, kann aber mit ein wenig Aufwand verlustfrei auf 980 Bytes komprimiert werden. Zweifellos funktioniert die Schwarzweißversion (181 Bytes) auch mit demselben Code.
Regeln: Jede Antwort sollte das Bild, seine Größe in Bytes und den Code enthalten, der zur Verarbeitung benötigt wird. Aus offensichtlichen Gründen ist keine benutzerdefinierte OCR zulässig ...! Alle angemessenen Sprachen und Bildformate sind zulässig.
Bearbeiten: Als Antwort auf Kommentare werde ich dies erweitern, um bereits vorhandene Bibliotheken oder sogar http://www.free-ocr.com/ für diejenigen Sprachen einzuschließen, für die keine OCR verfügbar ist.
quelle
Antworten:
Shell (ImageMagick, Tesseract), 18 Bytes
Das Bild ist 18 Bytes groß und kann folgendermaßen reproduziert werden:
Es sieht so aus (dies ist eine PNG-Kopie, nicht das Original):
Nach der Verarbeitung mit ImageMagick sieht es folgendermaßen aus:
Verwenden von ImageMagick Version 6.6.9-7, Tesseract Version 3.02. Das PBM-Bild wurde in Gimp erstellt und mit einem Hex-Editor bearbeitet.
Diese Version erfordert
jp2a
.Es gibt ungefähr so aus:
quelle
Java + Tesseract, 53 Bytes
Da ich Mathematica nicht habe, habe ich beschlossen,
die Regeln ein wenig zu verbiegen undverwenden Tesseract OCR zu tun. Ich habe ein Programm geschrieben, das "2014" mit verschiedenen Schriftarten, Größen und Stilen in ein Bild umwandelt und das kleinste Bild findet, das als "2014" erkannt wird. Die Ergebnisse hängen von den verfügbaren Schriftarten ab.Hier ist der Gewinner auf meinem Computer - 53 Byte mit der Schriftart "URW Gothic L":
Code:
quelle
Mathematica
753100Mein bisher bester Fall:
quelle
Mathematica, 78 Bytes
Der Trick, um dies in Mathematica zu gewinnen, wird wahrscheinlich die Verwendung der ImageResize [] -Funktion wie unten sein.
Zuerst habe ich den Text "2014" erstellt und in einer GIF-Datei gespeichert, um einen fairen Vergleich mit der Lösung von David Carraher zu ermöglichen. Der Text sieht aus wie . Dies ist in keiner Weise optimiert; Es ist nur Genf in einer kleinen Schriftgröße. Andere Schriftarten und kleinere Größen sind möglicherweise möglich. Straight TextRecognize [] würde fehlschlagen, aber TextRecognize [ImageResize []]] hat kein Problem
Wenn Sie sich mit der Schriftart, der Schriftgröße, dem Skalierungsgrad usw. beschäftigen, werden wahrscheinlich noch kleinere Dateien funktionieren.
quelle