Python OCR:将扫描图像转换为文本进行处理

我正在尝试创建一个答案纸标记(多项选择题)python应用程序。 答案纸将被扫描到图像文件(gif,png,jpg,无论需要什么格式)。

我的应用程序可以访问存储所有答案的数据库。

所以,它需要的只是扫描图像中的某种数据,以便比较答案和计算标记。

答题纸有固定的尺寸和表格格式(答案将由候选人'X'标记以表示他们的答案):

通过互联网搜索后,我发现有几个OCR API可用。

第一个是Pytesser 。 它非常易于使用,结果相当不错。 但它只适用于纯文本的图像。 所以,我认为这是不合适的。

我发现的第二个是Ocropus 。 它似乎很强大,但在它的文档

视窗

OCRopus依赖于很多POSIX路径名和文件系统。 您可以使用Windows在Windows上安装OCRopus。 更简单的方法是在VirtualBox下安装VirtualBox并在Ubuntu中运行OCRopus。

所以我认为这主要是针对linux。 我找不到窗户平台的详细安装指南。 (我是初学者,所以我可能是错的)

我发现的第三个是python-tesseract ,它是Tesseract OCR的包装。 在他们的页面中,提供了安装指南。 基本上,我需要,

  • 蟒蛇,正方体,win32.deb
  • 蟒蛇-的OpenCV
  • numpy的
  • 但我不知道如何在窗口上安装.deb文件。 我已经安装了opencvnampy

    所以以下是我的问题:

    (1)我可以将表格图像转换为可处理的数据(甚至有可能吗?)?

    (2)有没有其他有用的OCR API,我在这里没有提到可能有帮助?

    (3)最后,(我的愚蠢的想法)是否有可能使用PIL将图像分成小卡盘(基于表格单元的大小 - 因为表格维度是已知的),然后使用pytesser将每个小图像转换为文本,之后相应地处理数据?

    仅供参考:我只需要用于Windows平台,可能用于Windows xp 32位。 我正在使用Python 2.7.5。


    答案与你的号码相对应

    1)OCR通常很难,但对于测试分数处理来说(对你来说是个好消息),我认为它几乎是一个解决的问题。 在这方面,对于这些问题已经有了可靠的解决方案。 学校系统一直在这样做,以便自动化评分'scantron'测试多年,所以如果你有权访问这些资源,那么这条路线可能是你最好的选择。 至少你应该检查他们是如何做到的

    2)我确信还有其他人,但那些是我知道的主要免费人物

    3)我认为如果你试图在预算上做到这一点,时间不是问题,那么你“愚蠢”的想法实际上并不傻。 这可能是实现这一目标的最佳方式,并且scantron测试评分员很可能使用类似的方法。 您知道测试表单的确切尺寸。 你可以知道在哪里看直接像素映射。 你可以很容易地使用pytesser。 请记住,pytesser有时需要您调整图像大小(有时会上升,有时会下降)以获得最佳准确性。

    3)b您可能想考虑推出自己的解决方案。 你可以使用形态学操作的概念(numpy和其他图像库可以做到这一点几乎开箱即用)。 您甚至可能不需要这些运算符,只需执行表格行的二进制阈值(假设您已将图像剪切成表格行),并简单地查找斑点并将得分标记为来自具有最多斑点值的列。

    链接地址: http://www.djcxy.com/p/17389.html

    上一篇: Python OCR : Converting Scanned Image Into Text For Processing

    下一篇: Generate large number of unique random float32 numbers