В задаче 2014 года Майкл Стерн предлагает использовать OCR для разбора на 2014 год. Я хотел бы взять эту задачу в другом направлении. Используя встроенное распознавание текста из выбранной вами языковой / стандартной библиотеки, создайте наименьшее изображение (в байтах), которое анализируется в строке ASCII «2014».
Исходное изображение Стерна составляет 7357 байт, но с небольшим усилием его можно сжать без потерь до 980 байт. Без сомнения, черно-белая версия (181 байт) также работает с тем же кодом.
Правила: Каждый ответ должен содержать изображение, его размер в байтах и код, необходимый для его обработки. По понятным причинам ... Разрешены любые разумные языки и форматы изображений.
Изменить: в ответ на комментарии я расширю это, чтобы включить любую существующую библиотеку, или даже http://www.free-ocr.com/ для тех языков, где OCR недоступен.
Ответы:
Shell (ImageMagick, Tesseract), 18 байт
Размер изображения составляет 18 байт, и его можно воспроизвести следующим образом:
Это выглядит так (это копия PNG, а не оригинал):
После обработки с ImageMagick это выглядит так:
Использование ImageMagick версии 6.6.9-7, Tesseract версии 3.02. Изображение PBM было создано в Gimp и отредактировано с помощью шестнадцатеричного редактора.
Эта версия требует
jp2a
.Это выводит что-то вроде этого:
источник
Java + Tesseract, 53 байта
Поскольку у меня нет Mathematica, я решил
немногоизменитьправила ииспользовать Tesseract для распознавания текста. Я написал программу, которая отображает «2014» в изображение, используя различные шрифты, размеры и стили, и находит самое маленькое изображение, которое распознается как «2014». Результаты зависят от доступных шрифтов.Вот победитель на моем компьютере - 53 байта, используя шрифт "URW Gothic L":
Код:
источник
Mathematica
753100Мой лучший случай до сих пор:
источник
Mathematica, 78 байт
Хитрость для победы в Mathematica, вероятно, заключается в использовании функции ImageResize [], как показано ниже.
Сначала я создал текст «2014» и сохранил его в GIF-файле, чтобы сравнить его с решением Дэвида Каррахера. Текст выглядит так . Это никак не оптимизировано; это просто Женева с небольшим размером шрифта; другие шрифты и меньшие размеры могут быть возможны. Прямой TextRecognize [] потерпит неудачу, но TextRecognize [ImageResize []]] не имеет проблем
Суета с гарнитурой, размером шрифта, степенью масштабирования и т. Д., Вероятно, приведет к работе файлов еще меньшего размера.
источник