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
的包装。 在他们的页面中,提供了安装指南。 基本上,我需要,
但我不知道如何在窗口上安装.deb
文件。 我已经安装了opencv
和nampy
。
所以以下是我的问题:
(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