Механизмы распознавания текста, предназначенные для чтения с экрана - PullRequest
9 голосов
/ 27 июля 2010

Существуют ли механизмы распознавания, предназначенные для идентификации текста на снимках экрана, а не отсканированного текста? У меня есть проект, в котором мне нужно получить и идентифицировать текст в приложении, и ни один из механизмов распознавания текста, которые я пробовал до сих пор, не сработал хорошо со скриншотами.

В идеале двигатель должен хорошо работать с цветом и фоновым шумом, хотя я могу сделать некоторые поправки, если ничего подобного не доступно.

Это должно быть .NET-совместимым; либо написано в .NET, либо имеет API, вызываемый по .NET.

Ответы [ 4 ]

5 голосов
/ 27 августа 2010

Я обнаружил, Тессеракт OCR довольно солидно для проекта с открытым исходным кодом. Я обнаружил, что он может даже читать и декодировать простые капчи, такие как Megaupload. Я думаю, что с небольшой настройкой это может сработать очень хорошо.

Единственная боль в том, что он принимает только несжатые изображения TIFF, что может раздражать.

РЕДАКТИРОВАТЬ: Филипп Даубмайер уже нашел интеграцию .NET, но ниже приведен код для преобразования растрового изображения в несжатый формат TIFF.

private void ConvertBitmapToTIF(Bitmap convert)
{
    ImageCodecInfo codecInfo = GetEncoderInfo("image/tiff");
    System.Drawing.Imaging.Encoder encodeCom = System.Drawing.Imaging.Encoder.Compression;
    System.Drawing.Imaging.Encoder encodeBPP = System.Drawing.Imaging.Encoder.ColorDepth;

    EncoderParameters parms = new EncoderParameters(2);
    EncoderParameter param0 = new EncoderParameter(encodeCom, (long)EncoderValue.CompressionNone);
    EncoderParameter param1 = new EncoderParameter(encodeBPP, 8L);
    parms.Param[0] = param0;
    parms.Param[1] = param1;

    convert.Save("output.tif", codecInfo, parms);
}

Это сохраняет в файл, но метод Bitmap.Save может также записывать в поток.

4 голосов
/ 05 августа 2010

Обычно технология оптического распознавания текста настраивается для работы со сканированным текстом с разрешением не менее 200 т / д, однако для надежного качества распознавания рекомендуется 300 т / д. Таким образом, вам нужно приложить некоторые усилия для настройки параметров и всего, чтобы заставить его работать с экранным текстом, который обычно считается близким к 96 dpi.

ABBYY имеет программное обеспечение OCR для снимков экрана: http://www.abbyy.com/screenshot_reader/, которое доказывает, что его технология способна хорошо работать в этих условиях. Я использую это, это просто работает. Таким образом, вы можете связаться с ABBYY для OCR SDK: http://www.abbyy.com/ocr_sdk/ (можно использовать из .NET)

Это не дешево, но работает. Отказ от ответственности: я работаю на ABBYY

1 голос
/ 29 августа 2010

В сущности, вы ищете инструменты обхода CAPTCHA , которые пробовали различные исследователи, некоторые с успехом.

Другой подход заключается в использовании алгоритмов сглаживания для интерполяции захватов 96 DPI и их преобразования.до 300 DPI (например, Photoshop it), затем используйте стандартные инструменты OCR.

0 голосов
/ 31 августа 2010

Используйте первый ответ (программное обеспечение OCR), и для захвата экрана вы, вероятно, могли бы послать символ PRNTSCRN (printscreen), а затем конвертировать содержимое буфера обмена (bmp) в tiff.

надеюсь, это поможет вам немного больше в вашем предприятии

...