En el desafío de 2014 , Michael Stern sugiere usar OCR para analizar el 2014. Me gustaría tomar este desafío en una dirección diferente. Usando el OCR incorporado de la biblioteca de idiomas / estándar de su elección, diseñe la imagen más pequeña (en bytes) que se analiza en la cadena ASCII "2014".
La imagen original de Stern tiene 7357 bytes, pero con un poco de esfuerzo se puede comprimir sin pérdidas a 980 bytes. Sin duda, la versión en blanco y negro (181 bytes) también funciona con el mismo código.
Reglas: cada respuesta debe proporcionar la imagen, su tamaño en bytes y el código necesario para procesarla. ¡No se permite OCR personalizado, por razones obvias ...! Se permiten todos los idiomas y formatos de imagen razonables.
Editar: en respuesta a los comentarios, ampliaré esto para incluir cualquier biblioteca preexistente, o incluso http://www.free-ocr.com/ para aquellos idiomas donde no hay OCR disponible.
fuente
Respuestas:
Shell (ImageMagick, Tesseract), 18 bytes
La imagen tiene 18 bytes y se puede reproducir así:
Se ve así (esta es una copia PNG, no el original):
Después de procesar con ImageMagick, se ve así:
Usando ImageMagick versión 6.6.9-7, Tesseract versión 3.02. La imagen PBM se creó en Gimp y se editó con un editor hexadecimal.
Esta versión requiere
jp2a
.Produce algo como esto:
fuente
Java + Tesseract, 53 bytes
Como no tengo Mathematica, decidí
doblar un poco las reglas yusar Tesseract para hacer el OCR. Escribí un programa que representa "2014" en una imagen, usando varias fuentes, tamaños y estilos, y encuentra la imagen más pequeña que se reconoce como "2014". Los resultados dependen de las fuentes disponibles.Aquí está el ganador en mi computadora: 53 bytes, usando la fuente "URW Gothic L":
Código:
fuente
Mathematica
753100Mi mejor caso hasta ahora:
fuente
Mathematica, 78 bytes
El truco para ganar esto en Mathematica probablemente será el uso de la función ImageResize [] como se muestra a continuación.
Primero, creé el texto "2014" y lo guardé en un archivo GIF, para una comparación justa con la solución de David Carraher. El texto se ve así . Esto no está optimizado de ninguna manera; es solo Ginebra en un tamaño de letra pequeño; Pueden ser posibles otras fuentes y tamaños más pequeños. Straight TextRecognize [] fallaría, pero TextRecognize [ImageResize []]] no tiene ningún problema
Preocuparse por el tipo de letra, el tamaño de fuente, el grado de escala, etc., probablemente dará como resultado archivos aún más pequeños que funcionen.
fuente