基于 MATLAB 的答题卡识别软件设计

基于 MATLAB 的答题卡识别软件设计

摘要:随着教育技术的飞速发展,考试普遍使用答题卡来记录答案,采用计算机自动识别答案卡信息,计算考生的成绩,可以减少阅卷人的工作。本文利用 Matlab 软件设计一个答题卡的自动识别系统,实现了对答题卡的中考生考号、考试科目、考试成绩的准确识别与计算。

关键词:答题卡识别 霍夫变换 区域分割

引言:目前,考试的主流方法是以试卷的考试为主。自动阅卷系统的研究主要是基于计算机图像处理技术的光标读取器和答题卡标识系统。基于数字图像处理技术,需要提前扫描考生答题卡生成电子图像文件,然后存储在计算机中。在处理时直接在软件中读入。利用数字图像处理的各种技术和方法,对考生的考试成绩进行识别。利用这种技术不仅可以节省考试管理和考核部门的人力,物力,而且也能提高工作效率,提高评估的公平性。本文用

Matlab 设计了答题卡识别软件,用于对答题卡信息及成绩的自动识别计算。

  1. 答题卡识别软件设计
    1. 系统软件设计

系统软件包括:

  1. 答题卡的读取;
  2. 图像预处理部分:包括图像灰度化、二值化等;
  3. 对图像进行霍夫变换得到霍夫变换域,用于检测答题卡中的直线段;
  4. 计算倾斜角度,矫正图像:Hough   变换检测到的直线可以计算出直线的斜率,然后用反三角函数可以得到倾斜角度。再对图像进行旋转,得到符合要求的图像;
  5. 对图像进行滤波并进行区域划分:原图像的二值化图像有噪声,所以利用除噪函数进行滤波,然后根据答题卡的特征划分区域;
  6. 分割图像,生成网格线:根据答题卡的特点划分区域,再根据答题卡的填涂区域分布进行网格线划分;
  7. 识别和显示:识别考上学号、考试科目、考生答案,用  GUI界面显示。
    1. Hough 变换倾斜矫正

霍夫变换可以识别出图像中的几何形状,可以分离出图像中圆、矩形等特殊的形状。其最基本的功能是在图像中检测直线或者曲线。霍夫变换算法将每个像素坐标点 P(x,y) 转换到(r,theta) 的曲

线点上面,累加到对应的格子数据点,当一个波峰出现时候,说明有直线存在。通过 Hough 变换检测出了很多条直线,选取最长的那条直线,计算其斜率,然后进行倾斜矫正,则可获得答题卡图像的倾斜矫正结果。

    1. 图像分割及网格线的生成

在原图像中标记出 Hough 变化检测出的的最长直线。则标记出直线的上部分为答题卡类型区、考生考号区和考试科目部分,下部分为答案区。

Hough 变换检测出的峰值中获取最长的三条,其中一条竖直定位线、一条区域分割线和一条底部线,那么根据坐标可以选取区域分界线作为基准,用底部线配合计算得到四条答题区边界线。

以横向检测到的第一个像素不为 0 的点作为一条直线的起始点

划横线,再以竖向检测到的第一个像素不为0 的点作为起始点划竖线。在获取了答题区四条边界线后需要对其区域进行进一步划分,首

先计算答题区六个横向区域的底部横线纵坐标如公式(1):

(1)

其中 ym 是第n 个横向区域的底部横线纵坐标( 此处m 为 0-6)

y 是基准横线纵坐标,a 为比侧系数, 是底部横线的纵坐标。用同样的方法, 也可以得到每个横线区域中四个小区域的横线纵坐标。竖直分割线,计算的是竖直分割线的横坐标如公式(2):

(2)

其中xmn 是每个横线区域中四个小区域的竖线横坐标 ,m 是第

n 个区域中的某条竖线 x 左是左边线,x 是右边线,b 是比例系数。此时完成了图像的初步分割。

这样在答题卡上就可以清晰的得到网格线。如图 1 中上下区域分的很明显,上区域又分为考号区和考试科目区,用蓝色横线分割的。下区域即答案区,则用红色横线分割。网格线图像可以很明显的看到区域的不同。图中每一个填涂的部分都严格的存在于一个小网格中, 有利于识别,如图 1

图 1 网格线的生成图像

1.4 答题卡信息识别

答题卡信息主要包括:考生号、考试科目、考生成绩等。可以在答题卡图像上标记出考生填涂的每一个位置对应的数字、科目或者选项来识别。

  1. 答题卡识别系统结果

用 GUI 界面来对答题卡识别的结果进行显示,GUI 主要通过界面让用户实现以下功能:

  1. 添加答题卡;
  2. 进行按键评分;
  3. 得到考生号、考试科目、考试成绩。其结果如图 2 所示。

图 2 GUI 界面结果的显示

  1. 结束语

经实验证明,设计出的答题卡识别软件可以比较准确的完成人名识别和成绩批改统计功能。但是软件还有很大的提升空间,例如在一些特殊情况下系统会识别不出来答题卡填涂不明显或者擦除不干净),GUI 界面还可以增加查卷功能,便于对学生成绩进行查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值