OCR引擎专为屏幕阅读而设计

时间:2010-07-27 15:08:46

标签: .net text screenshot ocr imaging

是否有任何OCR引擎用于识别屏幕捕获图像中的文本而不是扫描文本?我有一个项目,我需要在应用程序中检索和识别文本,到目前为止我所尝试的OCR引擎都没有与截图很好地结合使用。

理想情况下,引擎应该能够很好地处理颜色和背景噪音,但如果没有这样的话,我可以做一些补贴。

它需要与.NET兼容;用.NET编写或具有.NET可调用API。

4 个答案:

答案 0 :(得分:5)

我发现Tesseract OCR对于一个开源项目非常可靠。我发现它甚至可以读取和解码简单的验证码,比如Megaupload。我认为通过一些调整,这可以很好地工作。

唯一的痛苦是它只接受未压缩的TIFF图像,这可能很烦人。

编辑:Philip Daubmeier已经发现了.NET集成,但下面是将Bitmap转换为未压缩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方法也可以写入流。

答案 1 :(得分:4)

通常,OCR技术可以调整为使用至少200 dpi的扫描文本,但建议使用300 dpi以获得可靠的OCR质量。因此,您需要付出一些努力来调整设置和所有内容,以使其在屏幕文本上工作,这通常被认为接近96 dpi。

ABBYY拥有屏幕截图OCR软件:http://www.abbyy.com/screenshot_reader/,证明其技术能够很好地在这种条件下工作。我用它,它只是工作。因此,您可能需要联系ABBYY获取OCR SDK:http://www.abbyy.com/ocr_sdk/(可以从.NET使用)

它不便宜,但它有效。免责声明:我为ABBYY工作

答案 2 :(得分:1)

你基本上是在寻找各种研究人员尝试过的CAPTCHA circumvention tools,其中一些是成功的。

另一种方法是使用平滑算法插入96 DPI捕获并将其转换为300 DPI(例如,photoshop),然后使用标准OCR工具。

答案 3 :(得分:0)

使用第一个答案(OCR软件),对于屏幕截图,您可以发送PRNTSCRN(打印屏幕)字符,然后将剪贴板内容(bmp)转换为tiff。

希望这能帮助你进一步了解你的事业