Была цель создать приложение на mac, которое может распознавать текст кода с изображений и видео.
Хотелось сделать так, чтобы даже при большом объеме кода, текст распознавался менее, чем за секунду.
Проблема облегчается тем, что язык на котором пишут код всегда английский и ширина между всеми буквами одинаковая (моноширинный шрифт) — такие используются для программирования, и в этих шрифтах легко увидеть разницу между 1 и I, 0 и O и тд.
Если вкратце, то задача сводится к двум частям:
1. Нахождению самой буквы с ее границами
И с этим шикарно справился Vision, новый framework от Apple.
Вот скриншот того как он работает.
2. Распознавание буквы в заданных границах
Я решил пойти не хитрым способом и проверять определенные пиксели квадрата, в границах которого находится буквы (допустим: центр, углы, бока) и отталкиваясь от наличия или отсутствия там буквы, классифицировать что за буква.
Наглядный пример:
А вот как примерно будет выглядеть дерево
Это часть так как все не поместилось бы, да и не нужно.
Как же перенести этот схематичный рисунок в код, так чтобы не закопаться в нем, и чтобы он был такой же наглядный?!