基于MATLAB的手写公式识别

  • 图像的预处理(除去噪声、得到后续定位分割所需的信息。)

预处理其本质就是去除不需要的噪声信息,得到后续定位分割所需要的图像信息。图像信息在采集的过程中由于天气环境的影响、车牌本身的污损[13]等影响,获取的图像往往对比度和清晰度不是很理想,同时不利于后续的对车牌进行定位与分割,甚至可以影响到最后的实验结果。因此图像的预处理过程在前期图像处理方面就显得尤为必要。本课题中需要对采集后得到的图像首先进行灰度化,再对灰度图像进行拉伸处理,使得图像中的灰度分布变得均匀,从而有利于寻找边界,最后图像进行了滤波处理,滤除了背景中的一些噪声干扰。

[X,map] = imread('num.bmp');
newmap = rgb2gray(map);
figure,imshow(X,map); %显示原图像
figure,imshow(X,newmap); %显示转换后的灰度图像 I = histeq(map);%增强对比度
figure,imshow(X,I); H=imread('num.bmp');%调整灰度图像的灰度
figure,
imshow(uint8(H));

close(1:3);%有点乱了 J = imnoise(H,'salt & pepper',0.02);%添加椒盐噪点
K = medfilt2(J);%使用中位数滤波器滤除该噪声
imshowpair(J,K,'montage')%并排显示

% 通过这里的操作可见把图像处理的很到位,干净多了
  • 边缘检测(采用Roberts边缘检测技术)

通过比较可以看出 Roberts 算子通过计算局部差分等数学运算定位边缘,虽然准确率高,但往往提取的边缘信息不完整。该算子的算法中没有平滑处理的过程,因此容易受到噪声的干扰,故适合处理噪声低的图像,且对具有陡峭边缘的图像灵敏度比较大,定位的效果要更好。

%寻找图像边缘
L = edge(K,'Roberts');
figure,imshow(L);
  • 腐蚀(没有用结构原始disk15\20用的较为普通

可以不腐蚀(假定图形规范,但是后期会对复杂情况作二次处理)

%腐蚀 imerode(erode=腐蚀、侵蚀),比较可知在所有的复式结构中A2最优
subplot(221),imshow(L);
title('腐蚀原始图像'); %strel函数的功能是运用各种形状和大小构造结构元素 se1=strel('disk',5);%这里是创建一个半径为5的平坦型圆盘结构元素
A2=imerode(L,se1);
subplot(222),imshow(A2); title('使用结构原始disk(5)腐蚀后的图像');
se2=strel('disk',10);
A3=imerode(L,se2);
subplot(223),imshow(A3); title('使用结构原始disk(10)腐蚀后的图像');
se3=strel('disk',20);
A4=imerode(L,se3);
subplot(224),imshow(A4);
title('使用结构原始disk(20)腐蚀后的图像');

截止到目前,所有的处理在一定程度上是有效的,但是仅限于规范的图形,手写体无法实现。2021-03-2816:11:00

 

基于MATLAB的手写公式识别(2)的更多相关文章

  1. 基于MATLAB的手写公式识别(9)

    基于MATLAB的手写公式识别(9) 1.2图像的二值化 close all; clear all; Img=imread('drink.jpg'); %灰度化 Img_Gray=rgb2gray(I ...

  2. 基于MATLAB的手写公式识别(6)

    基于MATLAB的手写公式识别 2021-03-29 10:24:51 走通了程序,可以识别"心脑血管这几个字",还有很多不懂的地方. 2021-03-29 12:20:01 tw ...

  3. 基于MATLAB的手写公式识别(5)

    基于MATLAB的手写公式识别 总结一下昨天一天的工作成果: 获得了大致的识别过程. 一个图像从生肉到可以被处理需要经过预处理(灰质化.增加对比度.中值过滤.膨胀或腐蚀.闭环运算). 掌握了相关函数的 ...

  4. 基于MATLAB的手写公式识别(3)

    基于MATLAB的手写公式识别 图像的膨胀化,获取边缘(思考是否需要做这种处理,初始参考样本相对简单) %膨胀 imdilate(dilate=膨胀/扩大) clc clear A1=imread(' ...

  5. 基于MATLAB的手写公式识别(1)

    基于MATLAB的手写公式识别 reason:课程要求以及对MATLAB强大生命力的探索欲望: plan date:2021/3/28-2021/4/12 plan: 进行材料搜集和思路整理: 在已知 ...

  6. 基于MATLAB的手写公式识别(转折)

    2021-03-29 21:11:00 很难说自己是不是上当受骗了,老师明明说利用MATLAB进行手写体(记得是手写体,再不济印刷体)的识别是轻而易举的. 平时我也十分喜欢MATLAB这一操作系统,认 ...

  7. 基于MATLAB的手写公式识别(10)

    2公式分割 2.1投影分割法 12:23:00 完成水平和垂直两个方向上的投影 15:32:23 水平投影只投到水平方向的影,垂直投影只投到垂直方向上的影. 16:51:38  17:37:08 终其 ...

  8. 基于MATLAB的手写公式识别(8)

    从一个无知角落里开始,蹒跚学步,一个未知到另一个未知,在跌跌撞撞中越走越快,越走越远,最后宇宙也为之开源.对于探索者来说,最后他们的思想总是变得和自己的足迹一样伟大.   1.图像的预处理 1.1图像 ...

  9. 基于MATLAB的手写公式识别(7)

    今天晚上通过对原有T4模型的修改实现: 1.可以识别真彩图形.(这基本是一样大的,通过这个了解图像分割的原理) 2.在识别心脑管血药类的基础上实现数字的识别.(了解图像识别原理,熟练掌握图像分割技术) ...

随机推荐

  1. django 内置“信号”机制和自定义方法

    一.引子 在操作数据的时候,假设我们需要记录一些日志,这个时候,我们需要用什么来显示这个需求呢?装饰器?装饰器只能先实现整体的操作.在django 里面有这么一个东西--信号 下面我们就来了解了解它. ...

  2. 上百本电子书(Java/Hadoop/Spark/Linux/机器学习/)免费分享 百度云持续更新

    分享一下自己整理的超多电子书, 其中包括:Java,Hadoop,Spark,Linux,Hbase,Hive,机器学习,区块链 目录如下: 1 Java 基础 2 Java 虚拟机 3 Java 并 ...

  3. C语言之结构体内存的对齐

    C语言之结构体内存的对齐 大纲: 零.引例 一.结构体内存对齐规则 二.怎样计算结构体的大小 三.设计结构体时要注意的方面   四.为什么存在内存对齐 五.修改默认对齐数 在前面的章节中,我们谈到了C ...

  4. Pyqt5学习笔记(一)

    Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...

  5. 【odoo14】第十八章、自动化测试

    当我们开发大型应用的时候,通过自动化测试可以大幅提高应用的健壮性.每年,odoo都会发布新版本,自动化测试对于应用的回归测试非常有帮助.幸运的是,odoo框架有不同自动化测试用例.odoo主要包括三种 ...

  6. APK瘦身属性——android:extractNativeLibs

    先描述一下结论: android:extractNativeLibs = true时,gradle打包时会对工程中的so库进行压缩,最终生成apk包的体积会减小. 但用户在手机端进行apk安装时,系统 ...

  7. 设计vue3的请求实体工厂

    设计一个vue3的请求实体工厂 目录 设计一个vue3的请求实体工厂 描述 实现 构建一个基础请求方法 创建具体请求的方法 下面是对请求的声明文件 下面是请求的定义 generateRequest对请 ...

  8. Java例题_31 逆序输出数组的值

    1 /*31 [程序 31 数组逆序] 2 题目:将一个数组逆序输出. 3 程序分析:用第一个与最后一个交换. 4 */ 5 6 /*分析 7 * 第一种方法:找到这个数组的中间下标,然后交换两端的数 ...

  9. SFDC 删除操作时:验证或触发后续操作的一般解决方案

    删除操作比较特殊,不能通过Workflow Rule和Process Builder,Validation Rule来Check和相应做后续操作. 目前调查只有两种工具可以监听到删除操作: Apex ...

  10. Android Studio详解项目中的资源

    •目录结构 •作用 所有以 drawable 开头的文件都是用来放图片的: 所有以 mipmap 开头的文件都是用来放应用图标的: 所有以 value 开头的文件夹都是用来放字符串.样式.颜色等配置的 ...