Механизмы OCR разработаны для чтения экрана

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

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

Это должна будет быть совместимая.NET; или записанный в.NET или наличии вызываемого.NET API.

9
задан Erik Forbes 28 July 2010 в 17:34
поделиться

4 ответа

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

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

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

4
ответ дан 4 December 2019 в 21:07
поделиться

Я обнаружил, что Tesseract 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 также может записывать в поток.

5
ответ дан 4 December 2019 в 21:07
поделиться

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

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

1
ответ дан 4 December 2019 в 21:07
поделиться

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

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

0
ответ дан 4 December 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: