首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python :将扫描图像转换为文本进行处理

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

Stack Overflow用户
提问于 2013-11-20 12:15:25
回答 1查看 10.5K关注 0票数 8

我正在尝试创建一个答卷标记(多重选择问题) python应用程序。答案将被扫描到图像文件(gif,png,jpg,任何需要的格式)。

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

所以,它所需要的只是扫描图像中的一些数据,这样就可以比较答案和计算分数。

答题纸有固定的尺寸,表格格式如下(考生将用“X”标记答案,以表示答案):

在网上搜索后,我发现有一些OCR可用。

第一个是Pytesser。这是非常容易使用和结果是相当好。但它只适用于只有纯文本的图像。因此,我认为这是不合适的。

我发现的第二个例子是Ocropus。它看起来很强大,但在它的文档中

视窗 OCRopus在很大程度上依赖于POSIX路径名称和文件系统。可以在Windows上安装OCRopus。一种更简单的方法是在Ubuntu中安装VirtualBox并在VirtualBox下运行OCRopus。

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

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

  1. python-tesseract-win32.deb
  2. python-opencv
  3. numpy

但是我不知道如何在窗口上安装.deb文件。我已经安装了opencvnampy

以下是我的问题:

(1)如何将表映像转换为可处理的数据(甚至可能吗?)

(2)是否还有其他我在此没有提及的有用的OCR API可能会有所帮助?

(3)最后,(我愚蠢的想法)是否可以使用PIL将图像分割成小块(根据表格单元格的大小--因为表的尺寸是已知的),然后使用pytesser将每个小图像转换为文本,然后相应地处理数据?

FYI:我只需要Windows平台,可能是windows 32位。我正在使用python2.7.5。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-20 13:02:31

答案与你的数字相对应

1) OCR在总体上是很难的,但是(对你来说是个好消息)对于考试成绩的处理,我认为这是一个几乎解决了的问题。在这种情况下,这些问题得到了切实有效的解决。多年来,学校系统一直在这样做,以实现“scantron”测试的自动化,因此,如果你能够获得这样的资源,走这条路可能是你最好的选择。至少你应该检查一下他们是怎么做的

2)我相信还有其他人,但这些是我所知道的主要免费的

A我认为如果你想在预算上做这件事,而时间不是问题,你的“愚蠢”想法实际上一点也不傻。这可能是最好的方法,这很可能是斯坎特恩测试等级使用类似的方法。你知道考试表格的确切尺寸。你可以知道直接的像素映射到哪里。你可以很容易地使用pytesser。记住,pytesser有时需要您调整图像的大小(有时是向上的,有时是向下的),以获得最佳的精度。

你可能想考虑使用你自己的解决方案。您可以使用形态操作的概念(numpy和其他映像库几乎可以做到这一点)。您甚至可能不需要这些操作符,只需对表行执行二进制阈值(假设您已经将图像切割成表行),只需查找blob并将分数标记为来自具有最多blob值的列。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20095737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档