有没有Python工具可以读取Scantron风格的数据

3 投票
3 回答
3064 浏览
提问于 2025-04-17 09:52

我想做一些通过邮寄方式进行的调查,但我在寻找快速的方法来把他们寄回来的调查结果数字化。

比如说,如果我有一个问题,下面有5个框,参与者可以通过勾选相应的框来表示他们的意见,是否有什么工具可以让我扫描这些纸质调查,然后通过软件处理,得到参与者的回答呢?

编辑说明:

我想了解的是在纸质调查被数字化之后,我需要做些什么。我想写一些代码,能够查看一个图片文件,识别出哪个框被勾选了,并输出参与者的答案。

我会使用桌面扫描仪或者类似的设备来扫描页面。

3 个回答

2

SDAPS项目代码库)值得一看。它可能不支持任意扫描的图片,因为它似乎在开始时需要一个ODT或LaTeX格式的文档。

概述

SDAPS是一个开源的光学标记识别(OMR)程序。它是用python编写的,并且与LibreOffice和LaTeX有一个集成的工作流程,可以用来创建问卷。

工作流程

在这里输入图片描述 使用SDAPS,你可以通过LibreOffice或LaTeX来创建问卷。完成后,会进行一些处理来收集调查的信息(问题和答案),然后生成一个可打印的PDF文件。填写好的问卷只需要扫描进来(示例)。SDAPS会进行光学标记识别,并可以生成一个PDF报告(示例)或导出数据。你还可以选择使用图形用户界面手动修正结果。

2

我不太明白这和Python有什么关系,除非你已经把结果数字化了,现在想要统计这些结果。听起来你还需要先扫描这些结果,按照我所知道的,Python并没有直接能做到这一点的功能。你得先弄到一个扫描仪,只有这样才能用Python来读取数据。

3

从我看到的情况来看,你其实不需要ICR(智能字符识别,主要用于手写和手印文本),你需要的是OMR - 光学标记识别(用于从调查问卷和测试等文档中获取人类标记的数据)。

坏消息是,你几乎找不到适合Python的开源库。不过有个解决办法 - 你可以使用一个云SDK,这是一种网站,可以让你上传图片,然后返回识别后的数据。你可以试试www.ocrsdk.com,这是ABBYY最近推出的一个基于云的OCR SDK。现在它处于封闭测试阶段,所以使用是完全免费的。

它同时提供了ICROMR的API方法,还有一套Python代码示例

撰写回答