Dans le défi de 2014 , Michael Stern suggère d'utiliser l'OCR pour analyser 2014. J'aimerais prendre ce défi dans une direction différente. À l'aide de l'OCR intégré de la bibliothèque de langues / standard de votre choix, concevez la plus petite image (en octets) qui est analysée dans la chaîne ASCII "2014".
L'image originale de Stern est de 7357 octets, mais avec un peu d'effort, elle peut être compressée sans perte à 980 octets. Nul doute que la version noir et blanc (181 octets) fonctionne aussi bien avec le même code.
Règles: Chaque réponse doit donner l'image, sa taille en octets et le code nécessaire pour la traiter. Aucun OCR personnalisé n'est autorisé, pour des raisons évidentes ...! Toutes les langues et tous les formats d'image raisonnables sont autorisés.
Edit: En réponse aux commentaires, j'élargirai ceci pour inclure n'importe quelle bibliothèque préexistante, ou même http://www.free-ocr.com/ pour les langues où aucun OCR n'est disponible.
la source
Réponses:
Shell (ImageMagick, Tesseract), 18 octets
L'image est de 18 octets et peut être reproduite comme ceci:
Cela ressemble à ceci (c'est une copie PNG, pas l'original):
Après le traitement avec ImageMagick, cela ressemble à ceci:
En utilisant ImageMagick version 6.6.9-7, Tesseract version 3.02. L'image PBM a été créée dans Gimp et modifiée avec un éditeur hexadécimal.
Cette version nécessite
jp2a
.Il produit quelque chose comme ceci:
la source
Java + Tesseract, 53 octets
Comme je n'ai pas Mathematica, j'ai décidé de
plier un peu les règles et d'utiliser Tesseract pour faire l'OCR. J'ai écrit un programme qui rend "2014" en une image, en utilisant différentes polices, tailles et styles, et trouve la plus petite image reconnue comme "2014". Les résultats dépendent des polices disponibles.Voici le gagnant sur mon ordinateur - 53 octets, utilisant la police "URW Gothic L":
Code:
la source
Mathematica
753100Mon meilleur cas jusqu'à présent:
la source
Mathematica, 78 octets
L'astuce pour gagner cela dans Mathematica sera probablement d'utiliser la fonction ImageResize [] comme ci-dessous.
Tout d'abord, j'ai créé le texte "2014" et l'ai enregistré dans un fichier GIF, pour une comparaison équitable avec la solution de David Carraher. Le texte ressemble . Ce n'est pas optimisé en aucune façon; c'est juste Genève dans une petite taille de police; d'autres polices et tailles plus petites peuvent être possibles. Straight TextRecognize [] échouerait, mais TextRecognize [ImageResize []]] n'a aucun problème
S'occuper de la police, de la taille de la police, du degré de mise à l'échelle, etc., entraînera probablement des fichiers encore plus petits qui fonctionnent.
la source