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

2018-09-22 04:15程梦龙唐晓燕南阳理工学院电子与电气工程学院
数码世界 2018年8期
关键词:纵坐标答题卡横线

程梦龙 唐晓燕 南阳理工学院电子与电气工程学院

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

1 答题卡识别软件设计

1.1 系统软件设计

系统软件包括:

(1)答题卡的读取;

(2)图像预处理部分:包括图像灰度化、二值化等;

(3)对图像进行霍夫变换得到霍夫变换域,用于检测答题卡中的直线段;

(4)计算倾斜角度,矫正图像:Hough变换检测到的直线可以计算出直线的斜率,然后用反三角函数可以得到倾斜角度。再对图像进行旋转,得到符合要求的图像;

(5)对图像进行滤波并进行区域划分:原图像的二值化图像有噪声,所以利用除噪函数进行滤波,然后根据答题卡的特征划分区域;

(6)分割图像,生成网格线:根据答题卡的特点划分区域,再根据答题卡的填涂区域分布进行网格线划分;

(7)识别和显示:识别考上学号、考试科目、考生答案,用GUI界面显示。

1.2 Hough变换倾斜矫正

霍夫变换可以识别出图像中的几何形状,可以分离出图像中圆、矩形等特殊的形状。其最基本的功能是在图像中检测直线或者曲线。

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

1.3 图像分割及网格线的生成

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

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

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

在获取了答题区四条边界线后需要对其区域进行进一步划分,首先计算答题区六个横向区域的底部横线纵坐标如公式(1):

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

其中xmn是每个横线区域中四个小区域的竖线横坐标,m是第n个区域中的某条竖线x左是左边线,x右是右边线,b是比例系数。此时完成了图像的初步分割。

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

图1 网格线的生成图像

1.4 答题卡信息识别

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

2 答题卡识别系统结果

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

(1)添加答题卡;

(2)进行按键评分;

(3)得到考生号、考试科目、考试成绩。

其结果如图2所示。

图2 GUI界面结果的显示

3 结束语

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

猜你喜欢
纵坐标答题卡横线
更正
勘 误
Can you solve them?
平面直角坐标系中的特殊点
Noun Riddles
难得的生日礼物
动脑筋,仔细看
安全知识竞赛答题卡
第五届播睿智杯“奇思妙想”有奖数学知识竞赛
知识竞赛答题卡