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

C# 如何以编程方式读取扫描的文档或图像,c#,java,image-processing,ocr,image-recognition,C#,Java,Image Processing,Ocr,Image Recognition,我在网上搜索过,因为我在OCR方面有点像n00b,实际上我不确定哪里是一个好的起点 我想建立一个应用程序,能够识别和计数,例如,在任何给定的文档/图像行中填写了多少复选框(如果任何人知道更适合这种类型的应用程序的内容,它甚至可以是另一种格式)。最终目标是消除手动数据捕获,并加快向应用程序的最终用户获取总体统计数据的过程 我主要用c#编写代码,所以最好使用.net解决方案,但如果不是这样,我会尽我所能 我的想法是重新设计用户填写的表单,使之与此类似。(请原谅粗俗的ASCII艺术:P)因此填写表格的

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

我想建立一个应用程序,能够识别和计数,例如,在任何给定的文档/图像行中填写了多少复选框(如果任何人知道更适合这种类型的应用程序的内容,它甚至可以是另一种格式)。最终目标是消除手动数据捕获,并加快向应用程序的最终用户获取总体统计数据的过程

我主要用c#编写代码,所以最好使用.net解决方案,但如果不是这样,我会尽我所能

我的想法是重新设计用户填写的表单,使之与此类似。(请原谅粗俗的ASCII艺术:P)因此填写表格的人只需检查纸张上的值

                |  1  |  2  |  3  |  4  |  5  |  
Product A       | [ ]   [ ]   [ ]   [ ]   [x] |    
Product B       | [ ]   [ ]   [x]   [ ]   [ ] |
任何想法都将不胜感激

谢谢大家!

您可以尝试使用

其他选择包括

  • 商业OCR库,或
  • 实现您自己的位图识别逻辑(如果您完全控制要扫描的内容的布局,则可能是可行的)

  • 如果你所做的只是在盒子里寻找X,那么你可以用浅蓝色打印表格,让人们用黑色墨水笔在盒子上做标记

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

    1)您还可以检查免费但功能强大的OCR引擎。它是用C++编写的,但你可以用C语言轻松地与它进行接口。 2)如果您想使用自己的图像处理,您可以考虑使用库,它是的.NET包装器


    opencv标签上最近出现了一个问题,它试图解决一个与您的问题非常类似的问题,即检测乐透卡上的标记。

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

    你也可以使用云服务——一个让你上传图像并发回OCR数据的网站。试试看,它是ABBYY最近推出的基于云的OCR SDK。它现在是测试版,所以完全可以免费使用。它要求最终用户设备具有internet连接,但它完全独立于您的编程语言选择和用户的设备资源。github上提供了代码示例和代码示例


    Disclamer:我在@ABBYY工作。

    可惜,莫迪在Office 2010中被弃用了。但也有其他选择:谢谢!(和其他回答的人)我会尝试发布一些示例代码或其他东西,如果我启动并运行它(如果有人感兴趣)嗨,尼古拉,ABBYY的云解决方案与Redmond的智能手机图片相比如何?(有我可以比较的网站吗?)