2010-07-27 6 views
8

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

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

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

+0

В чем разница между отсканированным текстом и снимком экрана? –

+3

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

ответ

4

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

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

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

+0

Спасибо, я проверю это. =) –

+0

Это хорошо для изображений с нижним dpi (например, 966 dpi) - я открываю изображение этого вида в окне просмотра фотографий и использую скриншот. Но мое изображение составляет 96 точек на дюйм, а высота - 20000, поэтому в этом случае очень много возможностей, таких как скриншот, а не скриншот, чтение и спуск и снова просмотр скриншотов. – SIslam

5

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

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

EDIT: Филип Дабмайер уже нашел интеграцию .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 можно записать в поток также.

+0

Я включил это в .NET-проект, просто используя исполняемый код и код для преобразования в несжатый TIFF. Я могу опубликовать это здесь, если это поможет. – Nate

+0

это было бы здорово! –

+0

Только что уже существует интеграция .net: http://www.pixel-technology.com/freeware/tessnet2/ –

1

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

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

+0

Я не ищу решателей CAPTCHA - ни один из текстов не будет скремблирован таким образом - но это все равно поможет. знак равно –

0

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

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