Я работаю над небольшим персональным приложением, которое должно читать какой-то текст (максимум 2 предложения) с очень простого скриншота Android. Текст всегда одинакового размера, одного шрифта и ок. в том же месте. Фон очень простой, обычно несколько оттенков одного цвета (кажется, будто ярко-оранжевый становится немного темнее оранжевого). Я пытаюсь выяснить, что было бы лучшим способом (и самое главное, самый быстрый способ) сделать это.
Моя первая попытка была связана с библиотекой IronOcr C #, и, честно говоря, она работала довольно хорошо! Но я заметил несколько проблем с ним:
- Это не на 100% точно
- Несмотря на наличие версии для сообщества / пробной версии, иногда выдаются исключения, указывающие на получение лицензии
- Требуется ~ 400 мсек, чтобы прочитать изображение размером 600x300 пикселей, которое в случае моего простого изображения я считаю довольно длинным
Как бы странно это ни звучало, у меня такое ощущение, что такие библиотеки, как IronOcr и Tesseract, могут быть слишком продвинутыми для моих нужд. Чтобы повысить скорость, я даже написал фрагмент кода, чтобы сначала «портировать» мое изображение, сделав его полностью черно-белым.
Мои текущие настройки IronOcr выглядят так:
ImageReader = new AdvancedOcr()
{
CleanBackgroundNoise = false,
EnhanceContrast = false,
EnhanceResolution = false,
Strategy = AdvancedOcr.OcrStrategy.Fast,
ColorSpace = AdvancedOcr.OcrColorSpace.GrayScale,
DetectWhiteTextOnDarkBackgrounds = true,
InputImageType = AdvancedOcr.InputTypes.Snippet,
RotateAndStraighten = false,
ReadBarCodes = false,
ColorDepth = 1
};
И я мог бы полностью согласиться с результатами, которые я получаю, используя IronOcr, но исключения из лицензирования разрушают его. У меня также нет $ 399 долларов, чтобы потратить на частный хобби-проект, который даже не покинет мой компьютер: (
Но моя главная цель в этом вопросе - найти лучший, быстрый или более эффективный способ сделать это. Это не обязательно должна быть существующая библиотека, я был бы более чем готов сделать свой собственный код обнаружения букв, который будет работать (только?) Для скриншотов, подобных моему, если кто-то может указать мне правильное направление.