如何以编程方式读取扫描的文档或图像

我在网上搜索过,因为在OCR方面我有点像n00b,而我实际上并不确定一个好的起点会在哪里。

我想构建一个能够识别和统计的应用程序,例如说明在文档/图像的任何给定行上填写了多少个复选框(如果有人知道更好的套件,它甚至可能是另一种格式这种类型的应用)。 最终目标是消除手动数据捕获并加快将整体统计数据提供给应用程序最终用户的过程

我主要以c#编码,所以.net解决方案会更好,但如果没有,我会采取我能得到的。

我想到的是重新设计用户填写的表格以类似于此。 (请原谅粗略的ASCII艺术:P)所以填写表格的人只需检查纸上的值。

| 1 | 2 | 3 | 4 | 5 | Product A | [ ] [ ] [ ] [ ] [x] | Product B | [ ] [ ] [x] [ ] [ ] | 

任何想法将不胜感激

谢谢!

1)您还可以检查免费但function强大的Tesseract OCR引擎。 它是用C ++编写的,但您可以使用C#轻松地与它进行交互。

2)如果您想使用图像处理自己动手,可以使用EmguCV库,它是OpenCV的.NET包装器。

最近有一篇关于opencv-tag的post ,它试图解决一个非常类似的问题,涉及检测乐透卡上的标记。

您可以尝试使用Office MODI库 。

其他选择是

  1. 商业OCR库,或
  2. 实现自己的位图识别逻辑(如果您可以完全控制必须扫描的布局,则可能是可行的)。

如果您所做的只是在盒子中寻找X,那么您可以用浅蓝色打印表格并要求人们用黑色墨水笔标记盒子。

您只需扫描图像并查找黑色X像素。 与浅蓝色相比,它们应该相对容易找到。 扫描图像上的特定x,y坐标分别对应于答案和产品类型。

您需要的是光学标记识别(OMR)。 如果您正在计划商业软件,请查看ABBYY FlexiCapture Engine ,它是一个用于在服务器,桌面和移动应用程序中集成数据和文档捕获技术的SDK。 它不是免费的,但是当谈到业务时 – 它可以为您的产品增加一个重要的价值。

您还可以使用云服务 – 一个允许您上传图像并向您发回OCR数据的网站。 试试www.ocrsdk.com ,它是ABBYY最近推出的基于云的OCR SDK。 它现在处于测试阶段,因此完全免费使用。 它要求最终用户设备具有互联网连接,但它完全独立于您的编程语言选择和用户的设备资源。 在github上有avalaibe的.NET和Java代码示例。

免责声明:我在@ ABBYY工作。