是否有任何OCR引擎用于识别屏幕捕获图像中的文本而不是扫描文本?我有一个项目,我需要在应用程序中检索和识别文本,到目前为止我所尝试的OCR引擎都没有与截图很好地结合使用。
理想情况下,引擎应该能够很好地处理颜色和背景噪音,但如果没有这样的话,我可以做一些补贴。
它需要与.NET兼容;用.NET编写或具有.NET可调用API。
答案 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。
希望这能帮助你进一步了解你的事业