热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【模式识别】基于matlabHough变换的答题卡识别【含Matlab源码244期】

一、简介1、课题介绍:本课题为基于MATLAB的不变矩答题卡识别。可识别学号,学科,答案,并进行分数统计,以及判断是否及格。后台可设置标准excel答案。经过灰度变换形成灰度图像、




一、简介

1、课题介绍:本课题为基于MATLAB的不变矩答题卡识别。可识别学号,学科,答案,并进行分数统计,以及判断是否及格。后台可设置标准excel答案。经过灰度变换形成灰度图像、二值化处理、图像滤波、边缘检测、hough变换等预处理。带GUI交互式界面。
2、识别原理:计算出了单选选择答案后,需要与标准的答案进行对比。这时需要建立一个二维的数组来储存标准答案。在程序中建立了一个数组,只有一行却有多个列,来记录每一道单项选择题的标准答案。记录好考生填涂的答案和标准答案后,这时通过一个 FOR 循环一一对比,如果相同的就让计数器加一如果不同计数器就不加。循环结束后就可以统计出考生选对的答案,然后将统计好。


二、源代码

clc; clear all; close all;
warning off all;
I = imread('images\\1.jpg');
I1 = Image_Normalize(I, 0);
hsize = [3 3];
sigma = 0.5;
I2 = Image_Smooth(I1, hsize, sigma, 0);
I3 = Gray_Convert(I2, 0);
bw2 = Image_Binary(I3, 0);
[~, ~, xy_long] = Hough_Process(bw2, I1, 0);
angle = Compute_Angle(xy_long);
[I4, bw3] = Image_Rotate(I1, bw2, angle*1.8, 0);
[bw4, Loc1] = Morph_Process(bw3, 0);
if nargin <3
flag = 1;
end
[H, T, R] = hough(bw);
P = houghpeaks(H, 4, 'threshold', ceil(0.3*max(H(:))));
lines = houghlines(bw, T, R, P, 'FillGap', 50, 'MinLength', 7);
max_len = 0;
for k = 1 : length(lines)
xy = [lines(k).point1; lines(k).point2];
len = norm(lines(k).point1-lines(k).point2);
Len(k) = len;
if len > max_len
max_len = len;
xy_lOng= xy;
end
if nargin <5
flag = 1;
end
Line1 = Line{1};
Line2 = Line{2};
Line3 = Line{3};
Line4 = Line{4};
yn1 = round(Line1(1, 2) + 0.18*(Line2(1, 2)-Line1(1, 2)));
yn2 = round(Line1(1, 2) + 0.34*(Line2(1, 2)-Line1(1, 2)));
yn3 = round(Line1(1, 2) + 0.50*(Line2(1, 2)-Line1(1, 2)));
Linen1_1 = [Line1(1, 1) yn1; Line1(2, 1) yn1];
Linen2_1 = [Line1(1, 1) yn2; Line1(2, 1) yn2];
Linen3_1 = [Line1(1, 1) yn3; Line1(2, 1) yn3];
% 定位竖直网格分割线
xn1 = round(Line3(1, 1) + 0.22*(Line4(1, 1)-Line3(1, 1)));
xn2 = round(Line3(1, 1) + 0.26*(Line4(1, 1)-Line3(1, 1)));
xn3 = round(Line3(1, 1) + 0.48*(Line4(1, 1)-Line3(1, 1)));
xn4 = round(Line3(1, 1) + 0.52*(Line4(1, 1)-Line3(1, 1)));
xn5 = round(Line3(1, 1) + 0.73*(Line4(1, 1)-Line3(1, 1)));
xn6 = round(Line3(1, 1) + 0.77*(Line4(1, 1)-Line3(1, 1)));
xn7 = round(Line3(1, 1) + 0.98*(Line4(1, 1)-Line3(1, 1)));
Linen1_2 = [xn1 Line3(1, 2); xn1 Line3(2, 2)];
Linen2_2 = [xn2 Line3(1, 2); xn2 Line3(2, 2)];
Linen3_2 = [xn3 Line3(1, 2); xn3 Line3(2, 2)];
Linen4_2 = [xn4 Line3(1, 2); xn4 Line3(2, 2)];
Linen5_2 = [xn5 Line3(1, 2); xn5 Line3(2, 2)];
Linen6_2 = [xn6 Line3(1, 2); xn6 Line3(2, 2)];
Linen7_2 = [xn7 Line3(1, 2); xn7 Line3(2, 2)];
ym1_1 = round(Line1(1, 2) + 0.32*(Linen1_1(1, 2)-Line1(1, 2)));
ym2_1 = round(Line1(1, 2) + 0.5*(Linen1_1(1, 2)-Line1(1, 2)));
ym3_1 = round(Line1(1, 2) + 0.65*(Linen1_1(1, 2)-Line1(1, 2)));
ym4_1 = round(Line1(1, 2) + 0.80*(Linen1_1(1, 2)-Line1(1, 2)));
ym5_1 = round(Line1(1, 2) + 0.95*(Linen1_1(1, 2)-Line1(1, 2)));
Linem1_1 = [Line1(1, 1) ym1_1; Line1(2, 1) ym1_1];
Linem2_1 = [Line1(1, 1) ym2_1; Line1(2, 1) ym2_1];
Linem3_1 = [Line1(1, 1) ym3_1; Line1(2, 1) ym3_1];
Linem4_1 = [Line1(1, 1) ym4_1; Line1(2, 1) ym4_1];
Linem5_1 = [Line1(1, 1) ym5_1; Line1(2, 1) ym5_1];
ym1_2 = round(Linen1_1(1, 2) + 0.25*(Linen2_1(1, 2)-Linen1_1(1, 2)));
ym2_2 = round(Linen1_1(1, 2) + 0.40*(Linen2_1(1, 2)-Linen1_1(1, 2)));
ym3_2 = round(Linen1_1(1, 2) + 0.60*(Linen2_1(1, 2)-Linen1_1(1, 2)));
ym4_2 = round(Linen1_1(1, 2) + 0.75*(Linen2_1(1, 2)-Linen1_1(1, 2)));
ym5_2 = round(Linen1_1(1, 2) + 0.90*(Linen2_1(1, 2)-Linen1_1(1, 2)));
Linem1_2 = [Line1(1, 1) ym1_2; Line1(2, 1) ym1_2];
Linem2_2 = [Line1(1, 1) ym2_2; Line1(2, 1) ym2_2];
Linem3_2 = [Line1(1, 1) ym3_2; Line1(2, 1) ym3_2];
Linem4_2 = [Line1(1, 1) ym4_2; Line1(2, 1) ym4_2];
Linem5_2 = [Line1(1, 1) ym5_2; Line1(2, 1) ym5_2];
end

三、运行结果

在这里插入图片描述


四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【图像识别】基于matlab路面裂缝识别含GUI【含Matlab源码 009期】
【图像识别】基于matlab身份证号码识别【含Matlab源码 014期】
【图像压缩】基于matlab图像处理教程系列之图像压缩【含Matlab源码 024期】
【图像分割】基于matlab图像处理教程系列之图像分割(一)【含Matlab源码 025期】
【图像分割】基于matlab图像处理教程系列之图像分割(二)【含Matlab源码 026期】
【模式识别】基于matlab指纹识别【含Matlab源码 029期】
【模式识别】基于matlab银行卡号识别【含Matlab源码 030期】
【图像聚类】基于matlab FCM和改进的FCM脑部CT图像聚类【含Matlab源码 074期】
【图像评价】基于matlab CCF算法的图像质量评价【含Matlab源码 075期】
【图像增强】基于matlab局部对比度增强的CLAHE算法之直方图增强【含Matlab源码 076期】
【图像融合】基于matlab Frequency Partition之图像融合【含Matlab源码 077期】
【图像评价】基于matlab SVM之图像无参考质量评价【含Matlab源码 078期】
【图像处理】基于matlab DWT+DCT+PBFO改进图像水印隐藏提取含GUI【含Matlab源码 081期】
【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
【图像融合】基于matlab CBF算法的图像融合【含Matlab源码 083期】
【图像分割】基于matlab模糊聚类算法FCM的图像分割【含Matlab源码 084期】
【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的的图像分割【Matlab 085期】
【图像去噪】基于matlab自适应形态学的图像去噪【含Matlab源码 086期】
【图像增强】基于matlab DEHAZENET和HWD的水下去散射图像增强【含Matlab 087期】
【图像增强】基于matlab PSO寻优ACE的图像增强【含Matlab源码 088期】
【图像增强】基于matlab区域相似变换函数和蜻蜓算法之灰度图像增强【含Matlab源码 089期】
【图像重建】基于matlab图像重建之ASTRA算法【含Matlab源码 090期】
【图像分割】基于matlab四叉树图像分割【含Matlab源码 091期】
【图像分割】基于matlab心脏中心线提取【含Matlab源码 092期】
【图像识别】基于matlab svm植物叶子疾病检测和分类【含Matlab源码 093期】
【图像识别】基于matlab模板匹配之手写数字识别系统GUI界面【含Matlab源码 094期】
【图像识别】基于matlab不变矩的数字验证码识别含GUI界面【含Matlab源码 095期】
【图像识别】基于matlab条形码识别系统【含Matlab源码 096期】
【图像识别】基于matlab RGB和BP神经网络的人民币识别系统含GUI界面【含Matlab源码 097期】
【图像识别】基于matlab cnn卷积神经网络之验证码识别【含Matlab源码 098期】
【图像直线拟合】基于matlab最小二乘法的图像直线拟合【含Matlab源码 100期】
【图像去雾】基于matlab暗通道之图像去雾【含Matlab源码 101期】
【图像分割】基于matlab直觉模糊C均值聚类的图像分割IFCM【含Matlab源码 120期】
【图像分割】基于matlab最大类间方差法(otsu)图像分割【含Matlab源码 121期】
【模式识别】基于matlab银行监控系统人脸识别【含Matlab源码 125期】
【模式识别】基于matlab GUI界面的疲劳检测系统【含Matlab源码 126期】
【图像识别】基于matlab国外车牌识别【含Matlab源码 128期】
【图像分割】基于matlab蚁群优化模糊聚类的图像分割【含Matlab源码 130期】
【模式识别】基于matalb GUI界面的水果检测系统【含Matlab源码 173期】
【模式识别】基于matalb GUI界面的水果分类系统【含Matlab源码 174期】
【模式识别】基于matalb GUI界面的水果分级系统【含Matlab源码 175期】
【模式识别】基于matlab人脸识别之检测脸、眼、鼻子和嘴【含Matlab源码 178期】
基于matlab GUI界面处理录音与音频【含Matlab源码 181期】
【图像处理】基于matlab GUI界面的图像加解密【含Matlab源码 182期】
【模式识别】基于matlab GUI界面BP网络之手写体大写字母识别【含Matlab源码 183期】
【图像分割】基于matlab GUI界面医学影像分割【含Matlab源码 184期】
【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
【图像隐藏】基于matlab Laguerre 变换的图像隐藏【含Matlab源码 193期】
【图像处理】基于matlab dwt函数实现二维小波变换【含Matlab源码 198期】
【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】
【图像边缘检测】基于matlab GUI界面图像边缘检测系统【含Matlab源码 203期】
【图像几何运算】基于matlab GUI界面之图像几何运算系统【含Matlab源码 206期】
【图像处理】基于matlab GUI界面之图像处理系统【含Matlab源码 207期】
【图像识别】基于matlab细胞识别和边缘检测【含Matlab源码 210期】
【模式识别】基于matlab 反馈神经Hopfield的数字识别【含Matlab源码 226期】
【模式识别】基于matlab之指纹图像细节特征提取 【含Matlab源码 227期】
【图像分割】基于matlab RGB HSV YCbCr Lab颜色空间人脸检测之图像分割【含Matlab源码 228期】
【图像压缩】基于matlab小波变换的图像压缩【含Matlab源码 229期】
【模式识别】基于matlab GUI界面的火灾检测【含Matlab源码 243期】



推荐阅读
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • JMeter接口关联与数据提取:正则表达式和JSON Extractor的使用
    在使用JMeter进行接口测试时,常常需要从前一个接口的响应中提取数据并应用于后续请求。本文将详细介绍如何利用正则表达式提取器(Regular Expression Extractor)和JSON Extractor来实现这一需求。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 本题要求在一个长度为n的数组中找出任意一个重复的数字。数组中的所有数字都在0到n-1之间,但具体哪些数字重复以及重复次数未知。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 深入理解 JMeter 定时器
    本文详细介绍了JMeter中定时器的功能和使用方法,探讨了其在性能测试中的重要性,并结合实际案例解释了如何合理配置定时器以模拟真实的用户行为。文章还涵盖了定时器的执行顺序及其与其他元件的相互作用。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 解决Windows下创建子进程时代码重复执行的问题
    在Windows系统中,当启动子进程时,主进程的文件会被复制到子进程中。由于导入模块时会执行该模块中的代码,因此可能导致某些代码在主进程和子进程中各执行一次。本文探讨了这一现象的原因及其解决方案。 ... [详细]
  • PHP 实现无刷新多图上传及远程图片处理
    本文详细介绍了如何使用 PHP 实现网页上的无刷新多图上传功能,同时支持远程图片的下载与处理。文章提供了具体的代码示例,并对关键函数进行了说明。 ... [详细]
  • 烤鸭|本文_Spring之Bean的生命周期详解
    烤鸭|本文_Spring之Bean的生命周期详解 ... [详细]
author-avatar
第一城的呀呀_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有