一、 实验目的
检测文档中所有的字母l (即小写的L)。


二、实验环境
Matlab2017a
三、实验方案分析
识别出文档中所有的字母l (即小写的L),若直接采取开运算的话,将会把所有的含有l结构的字母全部识别出来,错误率非常的高,因此采用了击中击不中变化来实现识别,这样可以提高识别率。
四、原理
击中击不中变换利用的是腐蚀过程中所填入的结构元素的位置运动的轨迹作为目标位置检测的依据,同时根据对偶的性质可以得出 其中A与Ac,h与M是互补的关系,故结构元素H和M的运动的轨迹应该是一样的,即 的结果就是目标的位置。因此,要将图1先转换成二值图像,然后用l的模板进行腐蚀,同时求出图1和模板的补集然后进行腐蚀处理,讲上述的步骤进行求与操作,得到的点就是l的位置。

五、软件设计
根据上述原理所述。可以得出下述的软件流程图。

图2 流程图
5.1 图像的加载:
对图像进行加载并作出了二值化处理和黑白反转,其结果如图3所示。

图3 初步处理后的图像

5.2 模板的提取:
对于击中击不中定理而言最终的是模板的提取,将转换后的二值图像,使用散点图显示二值化后的图像如图4所示,可以看出文本中每一行字母的宽度大概是20行,然后找出第一个l是第三行,其在数组的位置大约是66-79行。

图4 散点图显示二值化图像
然后选择66-79行,做散点图如图所示,定位到第一l的位置为146-149列:

图5 行散点图
通过上述的方法可以定位到第一个l的位置大约位于二值化数组的(66:79,146:149)的位置,提取出来并显示如图6所示。

图6 模板1的效果图

根据击中击不中定理,可以直接在上述的模板直接求反可得出模板2,如图7所示。

图7 模板2的效果图
5.3 腐蚀
使用模板1对图3进行腐蚀其结果如图8所示.

图8 模板1腐蚀的结果图
使用模板2对图3的补集进行腐蚀,其结果图如图8所示。

图9 模板2进行腐蚀的结果

对上述的结果进行求与可得结果,其如图10所示,即l的位置。

图10 文档中l的位置
5.6简单重构
通过模板1对图10进行腐蚀操作可得。

图11结果图
六、结论
通过上述的击中击不中变换,提高了识别率,降低了P、L、i等包含有l结构的字母影响。

七、代码

clear all
clc
%%读取
Targe2=imread('document.bmp');
% imshow(Targe2) Targe2=im2bw(Targe2);%二值化
Targe2=~Targe2;%求反
imshow(Targe2);model1=Targe2(66:79,146:149);%提取模板
imshow(model1);fe=imerode(Targe2,model1);
figure;imshow(fe)model2= ~model1;            %模板二
figure;imshow(model2);Targe2_2=~Targe2;
fe2 = imerode(Targe2_2,model2);
figure,imshow(fe2);Aim= fe & fe2;              %求与
figure,imshow(Aim);%% 图像重构Targe=imdilate(Aim,model2);
figure,imshow(Targe)

matlab :检测文档图片中的字母l相关推荐

  1. 软件测试质量过程检测文档_如何编写实际上有效的质量检查文档

    软件测试质量过程检测文档 A software product is like an airplane: it must undergo a technical check before launch ...

  2. 从MATLAB帮助文档上学习 chirp

    当我直接去看chirp的MATLAB帮助文档时,始终不得要领,查看了很多博文上的说法,也还是不懂,直到我去查看了维基百科,并总结了下面这篇博文后,反过来看chirp的MATLAB帮助文档,才觉得明朗了 ...

  3. 【 MATLAB 】Matlab 帮助文档需要登录问题如何解决?

    我们需要时常用到MATLAB的帮助文档来学习一些知识,但是当打开matlab帮助文档时,就会显示需要登录mathworks账户,这个账户也不是随便注册的,即使可以,也不想注册.怎么办呢? 这里提供一种 ...

  4. MATLAB在线文档打不开,怎么解决

    如何解决MATLAB在线文档打不开的问题 1.主页选择"预设" 2.选择"常规"->"帮助",将文档位置设为"安装在本地&q ...

  5. word文档如何写字母和下标

    word文档如何写字母和下标 ''ctrl'' + ''='',组合点击一次,产生效果,再点击一次,即可复原.

  6. matlab怎么生成html文件怎么打开吗,什么是Mathworks生成Matlab HTML文档的方法?

    我正在处理共享的Matlab代码,我们希望在本地网络中分享生成的文档作为可搜索的HTML文档. 我知道以下方法来生成文档: >将转换器写入C-like文件.这是在Using Doxygen wi ...

  7. 解决Matlab Help文档需要登录才能查看的问题

    任何一个软件的帮助文档对于初学者的入门来说都是至关重要的,Matlab自然也不例外.在Matlab中,在命令行中输入"Help+要查的函数名"来查阅函数的使用方法以及各个参数的含义 ...

  8. matlab入门文档

    博主太赞了,把文档搬运好了:https://blog.csdn.net/in_nocence/article/details/78358614 matlab自带的入门文档,我看了半天的英文,脑阔疼 但 ...

  9. Matlab帮助文档网址

    matlab各个版本帮助文档索引页 地址:https://ww2.mathworks.cn/help/doc-archives.html matlab Runtime https://ww2.math ...

最新文章

  1. 解决Lodop 8443端口找不到CLodopfuncs.js文件问题
  2. mysql注入漏洞语句_mysql注入sleep语句引发的拒绝服务
  3. python自动测试p-使用python+requests实现接口自动化测试
  4. Java动态追踪技术探究 1
  5. mysql+查询会话sql_MySQL Processlist--查看会话执行过的SQL情况
  6. maven中scope属性
  7. jQuery学习之DOM操作
  8. Oracle 11g for Linux安装前准备工作
  9. (76) Clojure: Why would someone learn Clojure? - Quora
  10. 威纶通触摸屏232脚位_触摸屏通讯口(USB、RS232、RS422/485)的正确使用
  11. Java图片压缩 - 压缩到指定大小范围
  12. TortoiseSVN安装和使用
  13. 《周一清晨的领导课》读书笔记
  14. 【深度之眼PyTorch框架班第五期】作业打卡01:PyTorch简介及环境配置;PyTorch基础数据结构——张量
  15. 12-属性动画源码分析
  16. 在html中如何设置图片轮显,css中怎么让图片轮播?
  17. 音视频知识介绍(二)
  18. Javascript算法实现PDF批量加盖不同宽度骑缝章,vue加持。
  19. 怎么自学Tekla智能节点中参数的含义——学会获取官方资料才是王道
  20. 三月“女孩月”,玩具反斗城推出独家发售玩具

热门文章

  1. spring 配置 一个类在 tomcat启动的时候调用
  2. Linux 驱动开发 三:字符设备驱动框架
  3. 洛谷P4312 [COI2009] OTOCI
  4. java三角形类_Java面向对象练习题之三角形
  5. layui select下拉框联动
  6. 考研英语二阅读理解态度题解题技巧
  7. 【交换篇】03. 配置接口 ❀ C3750-E ❀ CISCO 交换机
  8. 一系列令人敬畏的.NET核心库,工具,框架和软件
  9. 详解servlet生命周期
  10. Fuchsia OS 现已支持第二代 Nest Hub