Это, очевидно, старый вопрос, но я действительно горжусь нашим механизмом сопоставления шрифтов,
поэтому, пожалуйста, позвольте мне добавить некоторую относительную информацию.
Это не общедоступная библиотека или SDK (по крайней мере, пока)
но это двигатель, встроенный в продукт:
http://www.findmyfont.com
Он считывает изображение (или делает снимок экрана) и сопоставляет символы, выбранные вами, со всеми шрифтами вашего компьютера - независимо от того, установлены они или нет.
Скорость сопоставления составляет до 5 миллионов шрифтов / мин, это означает, что она может соответствовать, например. изображение из 5-6 букв против 100 000 шрифтов за 1-2 секунды.
Точность сопоставления зависит в основном от качества и разрешения изображения (рекомендуется высота не менее 20 пикселей), а также от того, насколько уникальной является форма выбранных букв.
В общем: если у вас действительно есть шрифт на вашем компьютере и вы выбираете 2-3 буквы любого изображения, вы найдете фактический шрифт в топ-5 совпадений - обычно в верхнем совпадении - и это верно для целых 600 000 шрифтов файлы.
Сейчас мы находимся в бета-тестировании новой версии, которая позволяет приложению сопоставлять также шрифты, которых нет на вашем компьютере, путем отправки запроса на совпадение на онлайн-сервер.
Я не могу многое рассказать о нашем собственном алгоритме сопоставления, но могу сказать следующее:
а. Вам не нужно путаться с фактическими контурами векторного шрифта: для успешного извлечения объектов достаточно хорошо отрисованного растрового изображения буквы.
б. Если вы хотите добиться высокопроизводительного соответствия, вам нужно создать и сохранить соответствующий индекс, отсканировав один раз все буквы всех шрифтов.
Надеюсь, ясно, что я не разместил всю эту информацию для рекламы продукта,
но хочу сказать, что я действительно горжусь разработчиком и разработчиком этого механизма сопоставления шрифтов.
Приветствия
Fivos
PS: Среда / язык реализации: Qt / C ++ в Windows / Mac OS / CentOS.