学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧。前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码。今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码。这里没有使用神经网络等,只是用了最基础的数字图像处理算法,最后通过模板匹配,得到结果。

源码下载链接:

下载链接(注意:有两套,第二套是后来改进的,都能运行的)

运行结果:



这里读取了车牌图片目录中的第一幅图片,并显示出来了原图像;随后计算出车牌的区域,进行图像切割,单独把车牌提取出来;最后,从图像中切割出每个字符,并与事先准备好的模板进行匹配,找到与其误差最小的模板就认为是对应的字符。



这里是另外一个识别车牌号的结果。

程序思路:

第一步:从原图像中切割出车牌,去除无用信息

1、读取原图像。

2、将原始彩色图像转换成灰度图像,并显示直方图(如果分布十分不均匀,使用直方图均衡化处理)。

3、使用roberts算子进行边缘检测(MATLAB中调用edge函数)。

4、图像腐蚀(去除不需要的边缘信息,尽可能只保留车牌上字符的轮廓)。

5、图像膨胀(平滑图像轮廓,图中没能完全滤出车牌之外的所有边缘信息,剩下了一部分,其实就是车牌上的那个奥迪标志,后面还要想办法把它给去掉)。

6、从图像中移除小块对象(调用bwareaopen()函数,从图像中删除所有少于2200像素8邻接的区域,最后只剩下车牌区域了)。

7、根据最后图像中“白色”的那部分界定车牌所处的区域,并重新在原图像中进行切割,得到车牌的图像。

第二步:从前面得到的车牌图像中切割出每个字符

1、先将车牌图像转换为灰度图像并绘制直方图。

2、为增强对比度,对灰度图像再做直方图均衡化。

3、将图像二值化。

4、中值滤波,滤除一些无用信息。

5、调用编写的my_imsplit.m和getword.m脚本,计算每个字符的位置,并逐一进行切割,得到只储存单一字符的图像。

6、与准备好的字符模板比对,计算出与其误差最小的某个字符模板,识别为对应的字符。

最后的识别结果:

数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)的更多相关文章

  1. 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏

    排序练习--找出前m大的数字 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给定n个数字,找出前m大的数字.   输入  多组输 ...

  2. Java获取项目中的路径 分类: Java Game 2014-08-14 10:17 122人阅读 评论(0) 收藏

    在项目中经常需要获取某个文件的路径: 在这里提供一些获取路径的方法.. 1.此种方式获取的路径,是当前类所在的路径: UserDAOTest.class.getResource("UserD ...

  3. GitHub项目协作基本步骤 分类: C_OHTERS 2013-09-23 21:31 690人阅读 评论(0) 收藏

    1.查找某个项目,然后Fork 2.打开GitHub For Windows,发现刚才Fork的项目 3.对着项目点击Clone,将之复制至本地 4.使用Eclipse等进行开发,如新增一个文件 5. ...

  4. 数字图像处理实验(总计23个)汇总 标签: 图像处理MATLAB 2017-05-31 10:30 175人阅读 评论(0)

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  5. MATLAB符号运算 分类: 图像处理 2015-07-31 22:53 3人阅读 评论(0) 收藏

    1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x; >> expand((x+3)^3) an ...

  6. 积分图像的应用(一):局部标准差 分类: 图像处理 Matlab 2015-06-06 13:31 137人阅读 评论(0) 收藏

    局部标准差在图像处理邻域具有广泛的应用,但是直接计算非常耗时,本文利用积分图像对局部标准差的计算进行加速. 局部标准差: 标准差定义如下(采用统计学中的定义,分母为): 其中. 为了计算图像的局部标准 ...

  7. 积分图像 分类: 图像处理 Matlab 2015-06-06 10:30 149人阅读 评论(0) 收藏

    积分图像(integral image)是一种快速计算矩形区域之和的数据结构,常利用它对算法进行加速.积分图像中处的值是原始灰度图像的左上角与当前点所围成的矩形区域内所有像素点的灰度值之和,即: 其中 ...

  8. 灰度世界算法(Gray World Algorithm) 分类: 图像处理 Matlab 2014-12-07 18:40 874人阅读 评论(0) 收藏

    人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能, 不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜 ...

  9. Retinex系列之McCann99 Retinex 分类: 图像处理 Matlab 2014-12-03 11:27 585人阅读 评论(0) 收藏

    一.McCann99 Retinex McCann99利用金字塔模型建立对图像的多分辨率描述,自顶向下逐层迭代,提高增强效率.对输入图像的长宽有 严格的限制,要求可表示成 ,且 ,. 上述限制来源于金 ...

随机推荐

  1. REST API权限集成设计

    REST API权限集成设计 应用分为两大部分,前端html+后端Rest服务,前端html和后端Rest服务部署完全分离. 目标:可访问资源都处于权限控制之下(意味着通过浏览器地址栏的任意url都会 ...

  2. JVM内存管理之垃圾搜集器简介

    引言 上一章我们已经探讨过GC的各个算法,那么垃圾搜集器是什么呢? 通俗的讲,使用编程语言将算法实现出来,产生的程序就是垃圾搜集器了.既然谈到了编程语言的实现,那么在讨论垃圾搜集器的时候,就已经涉及到 ...

  3. linux性能监控——CPU、Memory、IO、Network

    一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%. 上 ...

  4. NGUI中LabelA停靠LabelB的方法

    详情看 http://note.youdao.com/noteshare?id=ec901d56341207052b2d19233b5ddba3 这里仅仅贴出文字,完整内容请看上面链接. 有这样一个需 ...

  5. OSGi学习-总结

    本文是osgi实战一书的前几章读书总结 1.  OSGi简介 Java缺少对高级模块化的支持,为了弥补Java在模块化方面的不足,大多数管理得当的项目都会要求建立一整套技术,包括: 适应逻辑结构的编程 ...

  6. 【POJ】2385 Apple Catching(dp)

    Apple Catching Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13447   Accepted: 6549 D ...

  7. FastQC 测序质量

    文章转载于 Original 2017-07-06 Jolvii 生信百科 介绍一下如何理解 FastQC 各模块的结果 FastQC 的使用 FastQC的安装介绍请看这里.FastQC 支持 fa ...

  8. HTTP 1.0 & 1.1

    简介: HTTP ( HyperText Transfer Protocol ) 超文本传输协议,是互联网上应用最广泛的一种网络协议. HTTP 是一个客户端和服务端请求.应答的标准.使用 WEB 浏 ...

  9. /etc/rc5.d/s991local: line25: eject:command not found错误

      使用虚拟机安装centos出现错误,原因是我使用的镜像是最小级别的,没有图形化界面,只有终端窗口 有人用vmware安装minimal centos报错/etc/rc5.d/s99local : ...

  10. MyBatis 与 Hibernate对比