【问题标题】:Optical Character Recognition for Windows 8.1 AppWindows 8.1 应用程序的光学字符识别
【发布时间】:2014-02-24 17:22:49
【问题描述】:

我对 Windows 8.1 和光学字符识别完全陌生,所以我承认这对我来说几乎是初学者的领域。我一直在寻找在我的 Win8.1 应用程序中实现 OCR,并发现了这个漂亮的 Bing OCR Control。不幸的是,与CameraCaptureUI 不同,这个OcrControl 似乎无法识别我的网络摄像头;事实上,它的hardware requirements 之一是“在照片模式下支持 1280x720 或 640x480 分辨率的内置后置摄像头”。

我的第一个问题是:有什么办法可以规避这个问题吗?例如,更改OcrControl 的设置或Win8.1 模拟器的设置。

如果没有解决办法(或者如果您之前没有尝试过OcrControl),那么我的第二个问题是:OCR 是在本地完成还是通过调用 Web 服务完成?如果我要求列出一些适合我使用的 .NET 库,我会加倍努力——我认为这将是最简单的部分!

无论如何,我对 OCR 的要求很简单:只需从一张纸上读取文本并将其转换为 string 或诸如此类。非常感谢!

【问题讨论】:

    标签: c# windows-8 camera ocr windows-8.1


    【解决方案1】:

    我没有用过OcrControl控件,但是我有几个cmets。

    首先,如果 OcrControl 需要“在照片模式下支持 1280x720 或 640x480 分辨率的相机”,我可以从我自己在 iPhone 和 Android 移动相机上的测试中看出,这两种分辨率的图像几乎不能用于 OCR,除非你是在非常好的照明下描绘非常小的东西(名片或更小)。对于典型的页面大小的图片,这个分辨率肯定是不够的。如果您的页面具有非常大的字体(例如 20 磅或更大),也许会起作用。我的测试基于 720p 的“视频”帧分辨率,与此处要求的相同。如果一定要使用这些分辨率,我建议图片后期处理,人为提高分辨率。

    您可以选择丰富的 OCR 库。免费库肯定是可用的,并且在各种帖子中多次提到,只需查看 SO 上其他与 OCR 相关的帖子。付费图书馆将更强大,功能更丰富,容忍图像失真,并从质量较低的图像中提供更高质量的文本。如果您需要从跨平台设备访问,并且您的数量很少或无法预测(通常按页付费),基于 Web 的 API 是一个不错的选择。如果您不想托管自己的服务器,这也是一个不错的选择。如果您的容量较大(每页成本较低),后端服务器上的许可软件是一个不错的选择,但它需要预先获得软件许可、服务器维护等。

    无论您选择哪种系统,图像预处理都是您最好的朋友,尤其是如果您可以针对您的特定相机型号或用户的图像拍摄风格微调清理。为 OCR 准备图像,为机器处理准备它们,这意味着机器的最佳图像不一定是人眼看起来最好的图像。例如,将干净的 barbarized 图像提供给 OCR 将比预处理前的一些原始彩色图像产生更好的结果,即使 B&W 对你和我来说看起来都没有那么好。这是由“garbage in -garbage out”概念支持的,今天我们还不能依靠移动相机来提供足够好的开箱即用质量,所以尽量让你的图像尽可能好。在移动设备的情况下,每个用户还会在每张图片中引入人为因素(抖动、低光照、失真等),这些因素也可能在后期处理中进行校正。我在这里共同撰写了几篇关于图像清理和 OCR 准备的文章:http://www.ocr-it.com/ocr-api-in-the-cloud-blog

    免责声明。我讲的是 15 年的 OCR 集成经验。我是OCR-IT Cloud API 的首席开发人员,主要用于基于移动设备的图像处理,因为设备上的 OCR 很弱,而且后端服务器上的功能要强大得多。我还为客户安装了大量传统的基于 Windows 的基于服务器的 OCR 系统,主要使用基于 ABBYY 服务器的产品。我还共同开发了一些围绕数码相机图片的 iPhone/Android 应用程序。我还没有在 Windows Mobile 平台上进行开发——我期待在时间允许的情况下进行开发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-16
      • 2016-08-09
      • 2013-12-25
      • 2014-04-25
      • 2014-05-27
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多