考试是教育测量的重要手段,也是目前选拔人才 的重要手段。所以公平、公正就显得非常重要,这不仅 体现在考试的过程中,还体现在评卷的过程中。以前, 这些试卷都是进行人工翻阅批改,其中评卷老师的水 平、状态、情绪都能影响评卷的结果,这种不确定性有 失公平公正。随着信息技术的不断发展,计算机功能 的不断强大,出现了答题卡的计算机阅卷设备,通过电 子扫描技术将纸质的答题卡转化为数值化的形式,再 对其自动评阅,这不仅解决了评卷公正性、准确性的要 求还提高了评卷的工作效率。

考试是教育测量的重要手段,也是目前选拔人才 的重要手段。所以公平、公正就显得非常重要,这不仅 体现在考试的过程中,还体现在评卷的过程中。以前, 这些试卷都是进行人工翻阅批改,其中评卷老师的水 平、状态、情绪都能影响评卷的结果,这种不确定性有 失公平公正。随着信息技术的不断发展,计算机功能 的不断强大,出现了答题卡的计算机阅卷设备,通过电 子扫描技术将纸质的答题卡转化为数值化的形式,再 对其自动评阅,这不仅解决了评卷公正性、准确性的要 求还提高了评卷的工作效率。

目前答题卡识别方式主要有两种:一种是基于光 电设备,另一种是基于图像处理技术。光标阅读机 (OMR)是根据光电设备将不同区域的感光能力转换 为计算机处理的电信号,再依据电信号来识别。这种 识别系统具有高效率、高准确率、低功耗的优点,但它 的缺点也很突出,即必须采用光标阅卷机和专用的答 题卡,购买成本和使用成本都非常高昂,且这种形式的 答题卡规格一旦确定就难以修改,所适用的范围小。 图像处理技术是将图像采集设备所获得的图像供计算机分析识别,从而获取答题卡上的有效信息。这种识 别方式不仅可以完成阅卷工作,还具有成本低廉、使用 方便的优点,而且可通过软件方便修改答题卡的结构, 以适应不同的需求。

需求分析

  1. 识别答题卡答案选项
  2. 与正确答案对照
  3. 判别并计算分数
  4. 将结果写入Excel文件
  5. 接近100%识别率

本文实现 

  • 预处理——灰度化,二值化等
  • 倾斜校正——hough变换
  • 畸变校正——角点检测,投影变换
  • 较低误识别率,准确定位填涂痕迹
  • 目标检测结果与标准答案进行对比,给出分析结果

代码实现

img_path_list = dir(strcat(file_path,'*.jpg'));%获取该文件夹中所有jpg格式的图像
img_num = length(img_path_list);%获取图像总数量
errno = 0;%错误代码,0表示无误
if img_num > 0 %有图像for k = 1:img_num %逐一读取图像  image_name = img_path_list(k).name;% 图像名  image =  imread(strcat(file_path,image_name));  %I{j}=image;fprintf('%s\n',strcat(file_path,image_name));%% 识别过程%预处理SHOW=1;if numel(image)>2gray=rgb2gray(image);%用灰度化函数灰度化%自定义灰度化,由于红色的干扰比较大,因此降低红色通道的比重R = image(:,:,1);  %通道RG = image(:,:,2);  %通道GB = image(:,:,3);  %通道Bgray = (G.*0.45 + B.*0.45 + R.*0.10);%降低R通道权重elsegray=image;end%滤波与二值化g_bw = imbinarize(gray).*1.0;Low_High = stretchlim(g_bw, [0.0 0.3]);enmed= imadjust(g_bw, Low_High, [ ]);%对比度增强med = medfilt2(enmed, [7 5]);%中值滤波gausFilter = fspecial('gaussian',[5 5],10);   %高斯滤波器blur=imfilter(med,gausFilter,'replicate'); %高斯滤波bw = imbinarize(blur, max(0.2,graythresh(blur)-0.2));%im2bwif SHOWfigure(),subplot(121),imshow(image);title('原图');subplot(122),imshow(gray);title('灰度图');figure('name','预处理过程');subplot(2, 2, 1);imshow(enmed);title('对比度增强');subplot(2, 2, 2);imshow(med);title('中值滤波');subplot(2, 2, 3), imshow(blur), title('高斯平滑');subplot(2, 2, 4), imshow(bw), title('二值化');end%% 定位感兴趣区域SHOW=1;e_in=bw;e_in_gray=gray;edged_img=edge(e_in,'canny');%边缘检测S1 = regionprops(edged_img,'BoundingBox','PixelIdxList');max_area = 0;for i = 1:length(S1)%寻找最大BoundingBoxarea = S1(i).BoundingBox(3)*S1(i).BoundingBox(4); if area>max_areamax_area = area;pos = i;endendbbox = round(S1(pos).BoundingBox);bbox(3:4)=bbox(3:4) + 1;e_in_new(S1(pos).PixelIdxList)=1;CNT_ROI=e_in_new(bbox(2):bbox(2)+bbox(4)-1,bbox(1):bbox(1)+bbox(3)-1);if SHOWfigure('name','边缘检测'),imshow(edged_img);figure('name','ROI');subplot(1,2,1);imshow(ROIofbw);title('感兴趣区域二值图');subplot(1,2,2);imshow(CNT_ROI);title('感兴趣区域轮廓');imwrite(CNT_ROI,'./refer/CNT_ROI.jpg');end%% 倾斜校正 使用hough直线检测SHOW = 1;%控制是否显示中间过程%输入参数ROIofBW = ROIofbw;[H,Theta,Rho] = hough(CNT_ROI);[hight,width]=size(CNT_ROI);if length(lines)==1rotate_angle=lines.theta;%求旋转角elserotate_angle=lines(pos).theta;%求旋转角endrotated_ROIofBW = imrotate(ROIofBW,rotate_angle);rotated_ROI_ORI = imrotate(ROI_ORI,rotate_angle);%####ORIrotated_CNT_ROI = imrotate(CNT_ROI,rotate_angle);if SHOWfigure,subplot(121),imshow(ROIofBW);title('倾斜校正前');hold onxy = [lines(pos).point1; lines(pos).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','r');hold off;subplot(122),imshow(rotated_ROIofBW);title('倾斜校正后');imwrite(rotated_ROIofBW,'refer/rotated_ROIofBW.jpg')end
end

目前答题卡识别方式主要有两种:一种是基于光 电设备,另一种是基于图像处理技术。光标阅读机 (OMR)是根据光电设备将不同区域的感光能力转换 为计算机处理的电信号,再依据电信号来识别。这种 识别系统具有高效率、高准确率、低功耗的优点,但它 的缺点也很突出,即必须采用光标阅卷机和专用的答 题卡,购买成本和使用成本都非常高昂,且这种形式的 答题卡规格一旦确定就难以修改,所适用的范围小。 图像处理技术是将图像采集设备所获得的图像供计算机分析识别,从而获取答题卡上的有效信息。这种识 别方式不仅可以完成阅卷工作,还具有成本低廉、使用 方便的优点,而且可通过软件方便修改答题卡的结构, 以适应不同的需求。

基于Matlab答题卡图像检测识别研究相关推荐

  1. 基于MATLAB答题卡识别(GUI,论文)

    本课题为基于MATLAB的不变矩答题卡识别.可识别学号,学科,答案,并进行分数统计,以及判断是否及格.后台可设置标准excel答案.经过灰度变换形成灰度图像.二值化处理.图像滤波.边缘检测.hough ...

  2. 基于MATLAB的烟雾火灾检测识别系统

    火灾监测报警技术是预防火灾的重要手段.近年来, 火灾发生的频率高.覆盖范围广,给人民群众的生命财产 和社会经济造成了巨大损失,已成为一种普遍且损害巨大 的自然灾害.一旦引起火灾,火势将迅速蔓延,烟雾浓 ...

  3. 基于MATLAB的视频运动目标检测识别

    一.课题介绍 视频图像处理技术广泛用于工业.安全.医疗.管理等领域.运动目标的检测和跟踪是图像处理技术在视频序列图像处理方面的一个重要应用,在航天.交通.机器人视觉.视频监控.公共场所客流数据监测等场 ...

  4. 基于matlab小波变换的突变检测识别

    clear all; close all; clc; %% 原始信号生成与突变点的添加 Fs = 1000; % 采样频率1000Hz Ts = 1 / Fs; % 采样时间间隔1ms L = 100 ...

  5. 基于MATLAB的路面裂缝检测识别算法仿真

    目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB源码 %********************

  6. 【语音处理】基于matlab实现语音基频检测

    ​1 简介 随着智能化设备的广泛普及,语音信号作为智能化设备的一个重要的交互语言显得尤为重要,语音信号处理被广泛地应用在语音识别,智能控制,身份识别,智能家居等领域,MATLAB仿真软件具有强大的信号 ...

  7. matlab交通标志检测与分类,基于MATLAB的道路交通标志识别.doc

    基于MATLAB的道路交通标志识别摘要:本文介绍用MATLAB强大的计算功能和各种功能齐全的函数,图像工具箱来进行道路交通标志的识别.介绍基于LAB颜色模型的颜色特征提取和基于radon变换的形状特征 ...

  8. matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统

    一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...

  9. 【裂缝检测识别】基于计算机视觉实现路面裂缝检测识别系统设计含Matlab源码

    1 简介 作为国民经济发展的命脉,公路交通对于运输业.制造业.旅游业以及农业等国家支柱产业的发展都有着举足轻重的作用.近年来,随着我国公路使用寿命的延长和交通负荷的增加,路面破损检测和养护已成为公路交 ...

最新文章

  1. es6 日期字符串转日期_量化数据预处理-中文日期(含)转英文日期
  2. 可以考的python方面的证书-python有证书的加密解密实现方法
  3. 18.DataGrid内绑定ComboBox和ListBox以及取值
  4. python第三方库Requests的基本使用
  5. python画圆形螺旋线_PS画结构素描与示范-金属管道台灯(电脑绘画)
  6. Webpack单元测试,e2e测试
  7. 80端口被占用了怎么办_如何查看端口占用情况
  8. 计算机应用学科之间的逻辑性,数学教学中计算机应用
  9. torchtext.data.Field
  10. Springboot/Cloud集成Sentinel 和 入门实战
  11. java json.tostring,idea以JSON形式重写toString()方法
  12. H5炫酷特效系列4——炫酷粒子变化特效
  13. js定时器倒计时特效
  14. spring-test跟junit结合单元测试获取ApplicationContext实例的方法
  15. Axure Mac汉化
  16. 爬取年报数据、解析PDF提取数据、分析代码(巨潮 Python)
  17. SpringBoot注解把配置文件自动映射到属性和实体类实战
  18. 【提升coding能力】100道Python练习题11-20
  19. SpringBoot中@Value读取不到值的解决方案
  20. Vue 中 props 传值,父组件向子组件传递对象/数组可以直接修改的问题

热门文章

  1. Dart语言(一)--基础语法
  2. 网络工程师提高篇 | 路由重发布你了解多少?从原理到配置,瑞哥带你学习一波!
  3. java,jsp页面添加提示图以及提示音乐
  4. 这3款音频文件转文字工具,操作真的很简单
  5. 商城系统开发,使用微信服务号好?还是小程序?
  6. 副业赚钱的路子有哪些?分享6种较为实用的副业方式
  7. 吸血鬼素数 C/C++
  8. 第三回 无处不在的计算
  9. 2020-9-20 周报
  10. 计算机二级Python历年真题解答(第四套)