【问题标题】:Method for OCR of a screen region. SDK or application屏幕区域的 OCR 方法。 SDK 或应用程序
【发布时间】:2012-09-22 10:52:21
【问题描述】:

我还没有找到解决方案。我想做的是从专有的金融软件平台读取特定的数字文本值。我首先尝试了可访问性和元素间谍方法,但没有成功。我能想到的唯一可行的方法是使用屏幕的 OCR,具有特定的固定区域。

我检查过的所有 OCR 解决方案似乎都是基于文件的(PDF、TIFF 等)。我真正需要的是可以从屏幕上捕获的 OCR 解决方案。我能想到的几个挑战: 要捕获的文本是黑色背景,可以是彩色文本(黄色、绿色、红色、橙色)。文字大小也很小(我认为是 6pt)。

理想情况下,我想要一个 .NET API,但我愿意尝试任何可行的方法。

【问题讨论】:

  • 你能说一下程序是什么,你想要完成什么,可能还有其他方法可以完成你想做的事情。不要陷入XY problem
  • 当然,这个程序叫做thinkorswim。我相信这是一个Java应用程序。我尝试过的一种解决方案是 Screen Scraper Studio。他们声称能够从 Java 应用程序中提取 UI 元素,但我无法使用他们的程序这样做。 Screen Scraper Studio 也有在屏幕区域上的 OCR 方法,但我发现 OCR 按预期工作的时间不到 50%,我需要它接近 99%。

标签: .net sdk screen-scraping ocr screen-capture


【解决方案1】:

这可能无法回答您的 OCR 问题,但您可以尝试的最后一种方法是挂钩 Windows 的 DrawText API。我最近了解到这个来解决一个similar problem like you had myself

去下载EasyHook 库并查看示例。尝试在外部应用程序上挂钩DrawTextA, DrawTextWDrawTextExA and DrawTextExW(这将与我的问题中的代码不同,因为我挂钩的是 Inproc DLL,而不是外部程序,但您的用例是 EasyHook 的设计目的,我的方式是一个黑客)。找出它使用什么,看看你是否可以让你的代码解析出文本。

【讨论】:

    【解决方案2】:

    试试这个OCR SDK

    您制作屏幕截图,指定区域并将其传递给 OCR。我们用这种方法得到了很好的结果。我们也尝试了 tesseract,但无法使其与屏幕字体正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多