基于matlab图像的答题卡的判定与成绩统计

本文主要研究内容

  本文使用Matlab对国内某通用型号的答题卡进行了识别和成绩统计,处理的步骤可分为预处理、平滑处理、灰度化、二值化、hough变换、图像旋转、形态学滤波、区域划分、坐标区域分割、成绩统计和GUI功能封装;其中,用到的主要技术是图像放缩、二维高斯卷积滤波器使用、基于Otsu算法的全局阈值计算、基于hough变换的直线检测、有效元素标记与提取、利用坐标对图像的区域划分。最终使用GUI界面将功能进行整合,实现单张答题卡的手动识别与多张答题卡的自动识别,并能完成成绩统计。
关键词:图像处理;答题卡;hough变换;成绩统计

一、最终方案与关键技术分列

由反复实验论证,图像的清晰度对于答题卡题目的识别影响不大,无需为了清晰度而牺牲效率,只要能识别填涂区域即可,因此,经实验最终选择使用一般图像采集设备获取的图像最为识别样本。
下面列出关键技术及其所起到的作用:
1)平滑处理与空间滤波:减少图像噪声;
2)灰度处理:将RGB图像转化为灰度图像;
3)二值化:将灰度图转化为二值图像;
4)Hough变换:检测图像直线信息,本文使用两次,具体用处会在相应章节具体阐述;
5)形态学操作:对二值图像中的像素块进行操作;
6)区域标记:识别并标记图像中的填涂区域;
7)区域分析:利用坐标对区域进行划分,完成成绩统计;
用户图形界面:整合功能,便于使用。

二、灰度与二进制图像

  

3.1 灰度图与灰度等级

灰度图,又叫做亮度图,是将一个图像矩阵的元素转化为用灰度等级(又叫亮度等级)来表示的图像,根据图像数据类型的不同,亮度等级范围也不同。uint8的图像,亮度等级范围是[0 255],unit16的亮度等级是[0 65535],double型的是[0 263]。本论文中是将一副RGB图像转化为灰度图(此处不过多解释RGB图像),当RGB的颜色分量均达到255[本论文中使用的图像数据类型都是uint8的,因此,亮度等级也使用uint8型,即[0 255].]时达到最亮,即白色,均为0时则为黑色,由此可以推断,当RGB的值有不同加权系数的时候,即可显示不同亮度,表现出不同灰度效果,经过阅读文献[国际电联(ITU-R)BT.601-7号标准规定的RGB转化为灰度图时的加权值。],RGB图像灰度化的加权为式(3-1)时最合适:
在这里插入图片描述

转化前的图像是一个m×n×3的三维矩阵,但是Matlab中转化为二值化图像的函数输入参数为二维矩阵,因此,首先将RGB图像先转化为灰度图,这样就将三维矩阵转化为二维矩阵,完成降维操作,如图3-1为答题卡转化后的灰度图。
在这里插入图片描述

图31 答题卡灰度图

3.2 阈值

对于已经转化的灰度图像,为了更清晰的表现和提取图像特征,需要将其转化为二进制图像,这个过程叫做二值化,二值化的基础就是阈值的确定。
对于一幅灰度图像,该图像有不同的亮度等级,亮度等级有[0 255]这256个值,不能明显的体现出图像特征,就答题卡而言,不能清晰的提取出填涂痕迹、特征直线以及除去不相关部分,为了能有效提取图像特征,需要在众多的亮度等级中找一个阈值T,图像中像素满足式(3-2)关系:
在这里插入图片描述

其中,是由满足条件的像素构成的新图像,由此可以得到一副只有0和1为元素的二进制图像,当T为常数时,称为全局阈值,当T为变量时,称为局部阈值。

三、特定理论的区域分割技术

图像分割是最关键的部分之一,通常情况下,对灰度图像的分割是基于像素灰度值的两个性质:不连续性和相似性[14]。图像固定区域内部的像素一般都具有灰度相似性,而在不同区域间的边界上,一般具有灰度不连续性[15],也就是常说的区域边缘属性。因此,灰度图的分割方法一般分为基于区域的方法和基于边界的方法。前者利用区域内的灰度相似性进行分割,后者利用区域间的灰度不连续性进行分割。根据分割过程中选择的运算策略不同,分割算法又可分为并行算法和串行算法[16]。并行算法中,所有的检测和分割都可以独立和同时进行,有利于提高运算效率。在串行算法中,后续的处理流程要用到前面步骤得到的结果,具有更好的连续性。
由于答题卡特征较明显,因此采用基于区域的分割方法,基于区域的分割方法就是以区域内像素的相似性特征为依据,将图像划分为一系列有意义的独立区域,其含有一致性、单一性、差异性和准确性,结合答题卡特征,此处在区域分割的基础上加以改进,采用特征直线与区域定位的思想进行分割。

5.1 区域描绘及特征提取

将整个答题卡分为上下两个区域,为了获取连接分量的位置,达到确定填涂区域的目的,就先得获取每个连接分量中各像素点的坐标,然后使用质心法求出每个连接分量的质心坐标,质心法如式(5-1),测试图如图5-1,质心使用“*”符号标出:
在这里插入图片描述

图5-1 质心法测试图

5.2 基于特殊直线的图像分析

第四章论述Hough变换时提取了三条直线,其中只需要根据二维坐标选择横竖两条直线即可,垂直定位线只有一根,而横线却有两根,且像素数量几乎相等,这时通过对两条横线的x轴坐标进行对比,第二章中已经对工具箱约定的坐标系进行了讲解,两条横线中,这里取x坐标较小的那条作为两个区域(信息填涂区和答案区)的分割线。至此,就定好了图像分割的基线。

四、GUI设计与读写功能的实现

GUI(GraphicalUser Interface)图形用户界面,是人机友好交互的重要构成,用户可以直观的对程序进行,如今GUI的开发也是热门。对于本次毕设,GUI是属于扩展功能,目的是为了更贴近于实用,并能实现“一键阅卷”和“查卷”功能,下面详细说明GUI的功能及实现方式。

6.1 功能概览

本次GUI主要通过界面让用户使用以下功能:
1)一键阅卷;
2)导出重新编号的答题卡;
3)以EXCEL导出统计后的成绩;
4)根据学号进行查卷。
答题卡的UI界面如图6-1所示。
在这里插入图片描述

图6-1 GUI概览

6.1.1识别指定文件夹下的答题卡

在做好了答题卡识别的基础上,使用GUI实现对某特定目录的所有答题卡进行识别。GUI中控件的作用就是向已经写好的函数中传递用户自定义的参数,为了避免混乱,这里指定“images”文件夹作为原始答题卡图像的存储目录。
对于一键阅卷功能,学号是唯一身份标识,所以,这里分两种情况,第一种是学号填涂正确的,另一种是学号填涂不正确的,对于填涂不正确的,会在该图像识别完成后进行弹窗提示,以便操作员了解是第几张答题卡的学号填涂错误,此外,在输出的答题卡图像中,学号会使用该张答题卡在文件夹中的序号替换,以便查找改正,如图6-2所示。
在这里插入图片描述

图6-2 自动阅卷及提示

五、结论

  在设计之初就遇到了归一化的问题,通过查阅资料,并根据实际情况,答题卡并不需要将像素点都归一化,需要的只是尺寸和亮度的处理。
在平滑滤波器的选择阶段,进行了大量的实验,最终通过效果比较和理论计算的最优选择了高斯平滑滤波器。
Hough变换对于图像的检测可以说是核心,第一次使用是用于校正图像的角度,通过检测竖直定位线的斜率将整个图像进行旋转;第二次是用于检测特征直线,以便进行区域分割。
形态学操作是对有效像素进行筛选的重要步骤,而有效像素的筛选则是以计算有效像素群(连接分量)的像素数目为标准。筛选后的连接分量即可作为填涂特征进行下一步处理。
基于坐标的区域分割中主要用到的思想就是对整幅图像进行分割,让每个填涂区域有明确的坐标区域标识,通过对质心坐标与图像块坐标的比较来判断其所属的答案,并将答案与其对应题号存储在特定的变量中。
GUI与Excel应用,本着实用主义与自动化思想,友好的人机交互界面和简单的操作是每个系统所追求的,因此,在完成了基本的答题卡处理后,加上GUI与Excel的应用,使得此系统更加丰富与完善,而不仅仅是图像算法的研究。
综上所述,本次答题卡识别与成绩统计的课题完成情况较为理想,对初步入门数字图像处理领域有很好的启发作用,同时,此系统还有更大的提升空间,例如根据用户选择识别更多类型的答题卡以及对图像采集环境光照处理算法的优化等,希望在以后的学习中能更加完善。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
【资源说明】 1、基于MATLAB的变换答题卡识别GUI和源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip 基于MATLAB的变换答题卡识别GUI和源码.zip

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值