【答题卡识别】基于MATLAB的答题卡识别系统【源码4期】

一、简介

基于MATLAB的答题卡识别系统,提出一种基于局部自适应阈值 分割和Hough变换的答题卡识别方法。运用数字图像处理的手段,先对答题卡图像进行平滑滤波、图像灰度化、图像二值化等预处理,再依据Hough变换进行倾斜校正得到待检测识别图像,最后根据区域的分割定位进行识别判断。实验结果表明,该算法对于答题卡的识别准确率高、使用方便,具有一定的应用价值。本文研究答题卡识别软件的设计与开发,集成了图像分割、模式识别等领域的功能模块,涉及计算机图像处理的一系列知识。通过图像处理技术,系统能够识别答题卡图像的答案选项。

二、部分源码

clc; clear; close all;
warning off all;
%读取图像
I = imread('1.jpg');
%预处理
I1 = Image_Normalize(I, 1);
%平滑处理,模板尺寸[3 3],sigma角0.5,平滑方式:高斯滤波
hsize = [3 3];
sigma = 0.5;
I2 = Image_Smooth(I1, hsize, sigma, 1);
%灰度化
I3 = Gray_Convert(I2, 1);
%二值化
bw2 = Image_Binary(I3, 1);
%hough变换
[~, ~, xy_long] = Hough_Process(bw2, I1, 1);
%变换斜率
angle = Compute_Angle(xy_long);
%图像旋转
[I4, bw3] = Image_Rotate(I1, bw2, angle*1.8, 1);
%形态学滤波
[bw4, Loc1] = Morph_Process(bw3, 1);
%hough检测区域分界线
[Len, XYn, xy_long] = Hough_Process(bw4, I4, 1);

%区域分割
[bw5, bw6] = Region_Segmation(XYn, bw4, I4, 1);

%区域标记
[stats1, stats2, Line] = Location_Label(bw5, bw6, I4, XYn, Loc1, 1);
%区域分析
[Dom, Aom, Answer, Bn] = Analysis(stats1, stats2, Line, I4);
savefigure12img('t.jpg');
%成绩判定
score=jieguo(bw5);
fprintf('选择题得分为%d',score);%在command窗口输出成
%将答题卡图片转存到results文件夹
Write_Results();

三、运行结果

四、matlab版本

R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968

文中部分源码仅供参考,若需要全部代码可以私信(有偿)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值