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

7

我在网上搜索过,但由于我对OCR并不了解,因此不确定从哪里开始是一个好的起点。

我想要开发一个应用程序,能够识别和计算文档/图片中每一行上填写了多少个复选框(如果有更适合这种类型的应用程序的其他格式也可以)。最终目标是消除手工数据捕捉,加速将整体统计数据呈现给应用程序终端用户的过程。

我主要使用C#编码,所以首选.NET解决方案,但如果没有我也接受其他的解决方案。

我所考虑的是重新设计用户填写的表格,使其类似于这样。 (请原谅粗糙的ASCII艺术:P),这样填写表格的人只需要在纸上勾选一个值。

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

非常感谢您提供的任何想法。

谢谢!

4个回答

6

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

2) 如果您想使用图像处理自己编写代码,可以使用EmguCV库,这是OpenCV的.NET包装器。

最近在opencv标签上发布了一个帖子,试图解决与您类似的问题,涉及检测彩票卡上的标记。


1
谢谢!(还有回答的其他人)如果我成功了,我会尝试发布一些示例代码或其他东西(如果有人感兴趣的话)。 - Rohan Büchner

2
你可以尝试使用Office MODI库
其他选项包括:
  1. 商业OCR库,或者
  2. 实现自己的位图识别逻辑(如果你完全控制需要扫描的布局,这可能是可行的)。

遗憾的是,MODI在Office 2010中已被弃用http://technet.microsoft.com/en-us/library/cc179199.aspx。但是有替代方案:http://en.wikipedia.org/wiki/Microsoft_Office_Document_Imaging#Alternatives_to_MODI_for_Office_2010_Users - Strillo

2
如果你只是在寻找方框中的X,则可以将表格打印成浅蓝色,并要求人们使用黑色墨水笔标记方框。
然后扫描图像并查找黑色X像素。相对于浅蓝色表格,这些像素应该比较容易找到。扫描图像上的特定x、y坐标分别对应答案和产品类型。

2
你需要的是光学标记识别(OMR)技术。如果你计划开发商业软件,可以看一下ABBYY FlexiCapture Engine这个SDK,它可以将数据和文档捕获技术集成到服务器、桌面和移动应用程序中。它不是免费的,但对于商业来说,它可以为你的产品增加严肃的价值。
你也可以使用云服务——一个网站,让你上传图像并返回OCR处理的数据。尝试一下ABBYY最近推出的基于云的OCR SDK{{link2:www.ocrsdk.com}},它现在处于测试阶段,是完全免费的。它需要终端用户设备具有互联网连接,但它与你的编程语言选择和用户设备资源完全无关。在github上有.NET和Java代码样例{{link3: (.NET)}} (Java)可用。
声明:我在ABBYY工作。

你好,Nikolay,ABBYY的云解决方案与Redmond的 https://ocr.a9t9.com/ 对智能手机图片的处理有何区别?(是否有可以进行比较的网站?) - user5102460

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接