matlab 图像分割_基于MATLAB的车牌定位问题

引言

车牌识别系统是一项比较成熟的技术,并且已经得到了广泛的应用:

matlab 图像分割_基于MATLAB的车牌定位问题_第1张图片

图1 图片识别系统(图片来源于百度)

车牌识别技术主要包含三个方面:车牌定位、字符分割和字符识别三个核心模块。车牌定位是利用车牌的颜色和形状特征确认并获取汽车的车牌位置;字符分割是将获取到的车牌切割成单个字符;字符识别目前主要有基于模板匹配算法和基于人工神经网络算法对切割的字符进行识别。下面我们对基于MATLAB的车牌识别系统进行详细的介绍。

本文重点讲解车牌定位的实现。

1.图像数据读入

这里所说的车牌识别是基于图像的车牌识别技术。要想实现车牌识别,首先要从计算机中读取含有要识别车牌的图片,MATLAB常用的读取图片有两种方式,一是利用uigetfile函数,执行此函数可得到供用户选择图片文件的对话框,用户选择要识别的图片并确定后,会返回此图片的文件名和路径名。二是利用imread函数将图像数据读出,赋值给变量I,从而实现图像数据的读入。读取之后的I矩阵是一个三维矩阵,第一第二维表示图像的宽和高,第三维表示RGB三色。

matlab 图像分割_基于MATLAB的车牌定位问题_第2张图片

图2 读取图片

素材图片来源于百度图库。

2. 图像转换

我们读取图片之后得到的矩阵式三维数据I,而在处理图片时,我们只需要其中的一种颜色就可以实现图片的识别,这样就降低了数据处理的复杂程度。使用的函数是rgb2gray函数,该函数接收一个彩色图像,返回该图像转换为灰度图后的图像数据,并将该数据赋值给变量I1,转换完之后的I1也是矩阵,但是是二维矩阵,没有彩色信息。

matlab 图像分割_基于MATLAB的车牌定位问题_第3张图片

图3 灰度图像

3. 边缘检测

图像的边缘检测是数字图像处理的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。经典的边缘检测方法,是通过对原始图像中像素的某小邻域构造边缘检测算子来达到检测边缘这一目的来实现的。

常用的边缘检测算子有:Roberts Cross算子,Prewitt算子,Sobel算子, Kirsch算子,罗盘算子,Canny算子,Laplacian算子等,本文采用最常用的一阶算子Roberts Cross算子,计算得到如下结果:

matlab 图像分割_基于MATLAB的车牌定位问题_第4张图片

图4 边缘检测

4. 图像腐蚀

腐蚀主要用于形态学中除去图像的某些部分,Matlab用imerode函数实现图像腐蚀。常见图像形态学运算:腐蚀、膨胀、开运算、闭运算、骨架抽取等,其中最基本的形态学操作是:膨胀和腐蚀。

膨胀和腐蚀的主要用途:消除噪声;分割出独立的图像元素,在图像中连接相邻的元素;寻找图像中明显的极大值或极小值区;求出图像的梯度。腐蚀和膨胀是对像素值大的部分而言的,即高亮白部分而不是黑色部分,腐蚀是图像中的高亮部分被腐蚀掉,领域缩减,效果图拥有比原图更小的高亮区域。

所以说,腐蚀之后的图像是取原图像更精华的部分,从而去除噪声。

matlab 图像分割_基于MATLAB的车牌定位问题_第5张图片

图5 图像的腐蚀

5. 图像平滑处理

图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分的图像处理方法,目的是使图像亮度平缓渐变,减小突变梯度,改善图像质量。图像平滑的方法包括:插值方法,线性平滑方法,卷积法等等。这样的处理方法根据图像噪声的不同进行平滑,比如椒盐噪声,就采用线性平滑方法。下面给出平滑后的效果图。

matlab 图像分割_基于MATLAB的车牌定位问题_第6张图片

图6 图片的平滑处理

6. 移除小对象

bwareaopen是matlab函数,作用是删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域。本文利用bwareaopen函数对图像的小对象进行剔除。

matlab 图像分割_基于MATLAB的车牌定位问题_第7张图片

图7 移除小对象

7. 确定车牌位置

通过上面的6步骤处理之后,我们可以看出,已经基本确定了车牌所在的位置,现在需要将车牌在图片中的具体坐标确定,以方便下一步的剪裁。

这里确定车牌位置的思路为:找出图像矩阵中最大的元素,它所对应的行即为该二值图像中白色像素点最多的行,该行可认为是靠近车牌中心的一行。 然后我们以这一行为起点,分别向上向下逐行扫描,确定车牌的上边界(或下边界)。 同理,我们可以用相同的方法确定出车牌的左边界和右边界。

matlab 图像分割_基于MATLAB的车牌定位问题_第8张图片

图8 确定车牌在图中的位置

8. 剪切出车牌

第7步我们已经确定了车牌在图中的方位,下面直接剪切出相应的数据即可:

matlab 图像分割_基于MATLAB的车牌定位问题_第9张图片

图9 车牌剪切图

总结

本文主要讲解了车牌识别中的车牌定位问题。(未完待续)

你可能感兴趣的:(matlab,图像分割,matlab,平滑曲线连接,MATLAB,长度和像素,MATLAB中肤色分割算法,matlab按图像边缘抠图,matlab获取选中的点)