关于车牌定位的一些算法
一种复杂环境中的车牌定位算法

一种复杂环境中的车牌定位算法车牌定位是智能交通系统中重要的一环,它是车辆识别系统的关键步骤。
然而,在复杂环境中,如光线不均匀、天气恶劣或者车辆位置和角度变化较大时,车牌定位变得尤为困难。
因此,为了提高车牌定位的准确性和鲁棒性,在这种复杂环境下,可以采用以下算法。
首先,可以通过颜色特征进行车牌定位。
车牌通常具有特定的颜色,例如蓝色、黄色或者绿色等。
因此,可以使用颜色分割算法来提取图像中的车牌区域。
该算法首先根据颜色阈值将图像分割为不同的颜色区域,然后通过形态学操作来滤除小的非车牌区域。
最后,根据车牌的特定形状和比例进行筛选和检测。
其次,可以利用边缘检测算法来进行车牌定位。
边缘检测可以识别图像中的边缘信息,而车牌通常具有较为明显的边缘。
可以采用经典的边缘检测方法,如Canny算子,对图像进行边缘提取。
然后,根据车牌的特定形状和比例进行车牌候选区域的筛选。
此外,可以采用模板匹配的方法进行车牌定位。
模板匹配是一种基于相似度的匹配算法,可以在复杂背景下识别车牌。
首先,需要采集车牌图像的样本,然后使用特定的特征提取算法,如卷积神经网络(CNN),将车牌样本转换为特征向量。
接下来,对于待检测图像,也使用同样的特征提取算法,将图像转换为特征向量。
最后,通过计算图像特征向量与车牌样本特征向量之间的相似度来判断是否为车牌区域。
最后,可以结合多种算法进行车牌定位。
由于复杂环境下的车牌定位问题具有较高的难度,单一算法往往无法满足要求。
因此,可以采用多种算法的组合,例如,先通过颜色分割算法提取初始车牌区域,然后再使用边缘检测和模板匹配算法进行进一步的筛选和确认。
综上所述,复杂环境中的车牌定位算法可以结合颜色分割、边缘检测、模板匹配等多种方法。
同时,对于车牌定位的准确性和鲁棒性,还需要考虑光照变化、天气条件等因素,并采用适当的预处理和参数调整方法来提高算法的性能。
(最新整理)车牌识别算法总结

(最新整理)车牌识别算法总结
1
车牌识别
演示:钱剑滨
2021/7/26
2
目 录
2021/7/26
1
边缘检测
2
车牌定位
3
字Байду номын сангаас分割
4
字符识别
3
canny边缘检测
1、去噪:均值滤波、中值滤波、高斯滤波 2、用一阶偏导的有限差分来计算梯度的幅值和方向 3、对梯度幅值进行非极大值抑制 4、用双阈值算法检测和连接边缘
2021/7/26
12
2021/7/26
13
gradTemp1 = weight * grad1 + (1 - weight) * grad2; gradTemp2 = weight * grad3 + (1 - weight) * grad4;
选两个阈值τ1和τ2(2τ1≈τ2)对图像二值化,从
而可以得到两个阈值边缘图象N1[i,j]和N2[i,j]
即将(x,y)平面的直线变换为ρ-θ空间的一个点 该方法亦用于倾斜校正。
2021/7/26
6
车牌预处理
车牌字符区域 灰度化 二值化 去噪
2021/7/26
7
字符的分割
车牌字符特点:
一般牌照字符共有7个,并且长宽高以及字 符间距都符合一定的标准。 分割基本原理: 在精确定位车牌字符的上下边界后,以图示 模板,从左往右做垂直投影,通过波峰和波 谷可以将字符分割出来。
2021/7/26
8
字符分割的几种情况
1、当相邻两个波谷间的波峰比较小的时候需要将波峰 r删除掉。这里是针对于字符的间隙间的噪声来设置的 2、当相邻的矩形r1和r2之间的宽度较小时,并且此时 合并之后的宽度也接近序列中值的宽度,需要将r1和 r2进行合并,用以处理某一些汉字的粘连问题。 3、假如矩形r宽度接近于二倍的中值宽度,并且前后 相邻的矩形的宽度也接近于中值宽度时,需要将r分成 两块,用以接近车牌字符的粘连问题。 4、根据车牌字符的分布,调整分割后字符的左右边界
关于车牌定位的一些算法

近年来,智能交通系统(ITS)越来越受到人们的重视在车牌识别中,车牌自动识别系统作为核心部分之一应用已经越来越普及。
车牌识别系统主要分车牌定位、字符切分和字符识别三部分,而车牌定位又是系统中最重要的步骤,定位的成功与否以及定位的准确程度将会直接决定后期能否进行车牌识别以及识别的准确度。
文中利用MATLAB进行分析与仿真。
MATLAB是一种简单,高效、功能强大的高级语言,在科学与工程计算领域有着广泛的应用前途。
在数字图像处理领域,可应用MATLAB数字图像处理技术进行系统分析与设计。
本文要讨论的是对彩色车牌图像进行包括灰度化、二值化、图像增强、边缘检测的预处理,之后进行区域提取来实现对车牌的初定位。
借助MATLAB编程语言在仿真过程中分析现有算法并加以改进。
1 车牌定位中的基本理论与算法1.1图像灰度化彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。
经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
在车牌识别中要利用灰度分布的特征进行进一步的分割、识别,因此对车牌图像进行灰度化成为车牌定位的必要步骤之一。
1.2图像二值化二值图像是指整幅图像画面内仅黑、白二值的图像。
在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。
车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。
如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,常用的二值化方法有直方图统计法、固定门限法、动态阈值法、松弛法、抖动矩阵二值化法等。
车牌识别(一)-车牌定位

车牌识别(⼀)-车牌定位在对车牌识别过程中,常⽤的⽅法有:基于形状、基于⾊调、基于纹理、基于⽂字特征等⽅法。
⾸先基于形状,在车牌中因为车牌为形状规格的矩形,所以⽬的转化为寻找矩形特征,常常是利⽤车牌长宽⽐例特征、占据图像的⽐例等。
基于⾊调,国内的车牌往往是蓝底⽩字,可以采⽤图像的⾊调或者饱和度特征,进⼊⽣成⼆值图,定位车牌位置。
基于纹理特征⾃⼰还没有基础到。
基于⽂字特征往往是根据⽂字轮廓特征进⾏识别,原理是基于相邻⽂字轮廓特征、⽐例进⾏定位车牌位置。
⼀、图像⼆值化正如前⾯⽂章所⾔,⾸先进⾏获取图像⼆值化特征,本⽂采取了根据图像亮度特征,提⾼对⽐度,进⾏可以清晰获取⽂字的图像,为下⼀步的⽂字轮廓识别打好基础。
1.1 算法流程伪代码1、图像转化为HSV图像,获取V通道图像2、提⾼对⽐度3、V图像⾼斯滤波,去除噪声4、图像⼆值化程序源码:def get_colorvalue(image):height, width, shape = image.shapeimage_hsv = np.zeros((height,width), np.uint8)image_hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)image_hue, image_saturation, image_value = cv2.split(image_hsv)return image_valuedef enhance_contrast(image):kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))img_tophat = cv2.morphologyEx(image, cv2.MORPH_TOPHAT,kernel)img_blackhat = cv2.morphologyEx(image, cv2.MORPH_BLACKHAT, kernel)image_plus_tophat = cv2.add(image, img_tophat)image_plus_blackhat_minus_blackhat = cv2.subtract(image_plus_tophat, img_blackhat)return image_plus_blackhat_minus_blackhatdef preprocess(srcimage):image_value = get_colorvalue(srcimage)image_enhance = enhance_contrast(image_value)image_blur = cv2.GaussianBlur(image_enhance, (5,5), 0)# _, image_binary = cv2.threshold(image_blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)_, image_binary = cv2.threshold(image_blur, 100, 255, cv2.THRESH_BINARY )cv2.imwrite('image_binary.png',image_binary)return image_binary1.2 算法分析在实验中在获取通道图像时,发现可以利⽤图像饱和度图像进⾏定位。
常用的车牌识别算法

常用的车牌识别算法包括以下几种:
1. 车牌定位算法:用于确定车辆图像中车牌的位置。
这种算法通常会使用图像处理技术,如梯度信息投影统计、小波变换、车牌区域扫描连线算法等,以识别图像中的车牌区域。
2. 字符分割算法:在车牌定位后,需要将车牌中的字符进行分割。
这种算法通常会使用图像处理技术和机器学习算法,如基于深度学习的字符分割算法,以准确地将各个字符分割开来。
3. 字符识别算法:用于识别分割后的字符。
这种算法通常会使用机器学习算法,如卷积神经网络(CNN)或循环神经网络(RNN),以对字符进行分类和识别。
4. 神经网络识别算法:大规模神经网络识别算法是一种深度学习算法,它能够同时处理车牌定位和字符识别两个任务,具有更高的准确性和鲁棒性。
5. 启发式车牌定位算法:综合利用了图像处理技术和机器学习算法,以提高车牌定位的准确性。
这种算法通常会使用一些特征选择方法,如SVM、HOG等,以将车牌区域和非车牌区域进行区分。
6. 角度偏差和光照波动控制算法:在车牌定位和字符识别过程中,车辆的角度偏差和光照波动会影响算法的准确性。
这种算法通常会使用一些图像处理技术,如滤波、归一化等,以减小这些因素的影响。
这些算法在车牌识别过程中相互配合,以实现准确的车牌识别。
车牌识别算法原理

车牌识别算法原理
车牌识别算法的原理大致可以分为以下几个步骤:
1. 图像预处理:将原始图像进行灰度化、二值化、去噪等操作,得到能够进行后续处理的图像。
2. 车牌定位:利用图像处理技术将车牌从图像中定位出来。
常用的技术包括边缘检测、色彩定位、形状分析等。
3. 车牌字符分割:将定位到的车牌图像分割成独立的字符图像,常用的技术包括投影法、边缘分割法、基于颜色的分割法等。
4. 字符识别:利用机器学习算法或人工神经网络等技术,对车牌上的字符进行识别。
常用的算法包括支持向量机(SVM)、卷积神经网络(CNN)等。
5. 最终校验:将识别出来的车牌号码与数据库中的车牌号码进行匹配校验,确保识别结果的准确性。
以上就是车牌识别算法的基本原理,不同的算法可能会注重不同的环节和技术手段,但总体上都会按照这个基本流程进行处理。
车牌定位与车牌字符识别算法的研究与实现
车牌定位与车牌字符识别算法的研究与实现一、本文概述随着智能交通系统的快速发展,车牌识别技术作为其中的核心组成部分,已经得到了广泛的应用。
车牌定位与车牌字符识别作为车牌识别技术的两大关键环节,对于实现自动化、智能化的交通管理具有重要意义。
本文旨在探讨和研究车牌定位与车牌字符识别的相关算法,并通过实验验证其有效性和可行性。
本文首先对车牌定位算法进行研究,分析了基于颜色、纹理和边缘检测等特征的车牌定位方法,并对比了各自的优缺点。
随后,本文提出了一种基于深度学习的车牌定位算法,通过训练卷积神经网络模型实现对车牌区域的准确定位。
在车牌字符识别方面,本文介绍了传统的模板匹配、支持向量机(SVM)和深度学习等识别方法,并对各种方法的性能进行了比较。
在此基础上,本文提出了一种基于卷积神经网络的字符识别算法,通过训练模型实现对车牌字符的准确识别。
本文通过实验验证了所提出的车牌定位与车牌字符识别算法的有效性和可行性。
实验结果表明,本文提出的算法在车牌定位和字符识别方面均具有较高的准确率和鲁棒性,为车牌识别技术的实际应用提供了有力支持。
本文的研究不仅对车牌识别技术的发展具有重要意义,也为智能交通系统的进一步推广和应用提供了有益参考。
二、车牌定位算法的研究与实现车牌定位是车牌字符识别的前提和基础,其主要任务是在输入的图像中准确地找出车牌的位置。
车牌定位算法的研究与实现涉及图像处理、模式识别等多个领域的知识。
车牌定位算法的研究主要集中在两个方面:一是车牌区域的粗定位,即从输入的图像中大致找出可能包含车牌的区域;二是车牌区域的精定位,即在粗定位的基础上,通过更精细的处理,准确地确定车牌的位置。
在车牌粗定位阶段,常用的方法包括颜色分割、边缘检测、纹理分析等。
颜色分割主要利用车牌特有的颜色信息,如中国的车牌一般为蓝底白字,通过颜色空间的转换和阈值分割,可以大致找出可能包含车牌的区域。
边缘检测则主要利用车牌边缘的灰度变化信息,通过算子如Canny、Sobel等检测边缘,从而定位车牌。
车牌定位的论文
第三章车牌定位3.1车牌定位的主要方法所谓车牌定位算法是指在实际拍摄的图像中确定车牌区域的位置以便提取分割出车牌区域图像的问题。
牌照的快速准确定位是车牌自动识别技术中非常关键的一步,是典型的图像分割问题,因此定位方法与车牌特征和图像处理技术是分不开的。
经典的车牌定位分割算法包括从简单的灰度阈值方法、频域和空间分割方法到复杂的连接元素方法以及Hough变化法等,在背景较复杂和光照不均匀条件下,这些方法难以取得令人满意的分割效果。
近年来,人们针对这种情况,提出了各种各样的定位算法。
目前没有一个标准图像数据库来评价无限制条件车牌定位算法的性能,这个问题的研究目前刚刚起步。
3.1.1基于直线检测的方法这类方法一般采用Hough变化等方法来检测直线(车牌周围边框形成)。
利用车牌形状特性来定位车牌,在实际运用中忧郁光照不均匀等影响和摄像机畸变,曝光不足和动态范围太窄等原因,导致图像存在伪影,加上车牌上的灰尘、脏污等使形状特性表现的不明显,从而影响定位效果,此外传统的Hough变换法应用在车牌定位中,只是单纯的进行直线的检测,没有和车牌形状特性结合起来,而且Hough空间与原图像空间不是一一对应的,由Hough 空间中检测到的特征点无法确定出车牌轮廓的起始位置,无法避免直线干扰的问题,因此在有直线干扰时及未进行边框提取时的可能性会大大增加。
Hough变化计算量较大,对于边框不连续的实际车牌,需要附加量加大的运算。
3.1.2 基于阈值化的方法图像经过阈值化得到一个字符和背景分离的二值图像是这类方法的特点。
目前已经提出了多种阈值化策略,但简单算法二值化效果不好,复杂算法计算时间长、计算量大限制了实际应用。
3.1.3 基于灰度边缘检测方法此类方法通常利用车牌区域局部对比度明显和灰度有规律变化的纹理特征来定位。
中国车牌类型较多,在不同光照条件下车牌对比度更加不一,需要进行图像增强处理,还要考虑图像中与车牌特征非常相似的非车牌区域的排除问题。
车牌识别算法详细设计
车牌识别算法详细设计首先是车牌定位。
车牌定位的目标是从图像中准确地定位出车牌的位置。
这一步骤主要包括图像预处理、边缘检测和车牌区域定位三个过程。
图像预处理主要是对原始图像进行增强和去噪处理,以提高车牌的显著性。
常用的预处理方法包括灰度化、直方图均衡化、高斯模糊等。
边缘检测是通过检测图像中的边缘信息,找出可能是车牌边缘的区域。
常用的边缘检测算法有Sobel算子、Canny算子等。
通过边缘检测,可以找到一些具有明显边缘的区域。
车牌区域定位是通过对边缘信息进行处理,找出符合车牌特征的区域。
一般可以通过设定一些阈值和条件,来选择符合车牌尺寸和形状的区域。
可以使用像素连通分量、形状检测等方法来进行车牌区域的定位。
接下来是字符分割。
字符分割的目标是将定位到的车牌区域分割成单个字符。
这一步骤主要包括二值化、字符连接和字符分割三个过程。
二值化是将车牌区域的图像转换为二值图像,以便进一步处理。
可以使用灰度阈值分割或基于颜色的分割方法进行二值化处理。
字符连接是通过连接相邻的字符轮廓,将字符的各个部分连接起来,形成完整的字符。
常用的字符连接方法有连通区域分析、基于宽度的字符连接等。
字符分割是通过对连接后的字符进行切割,将字符分割成单个的字符。
可以使用统计特征、基于距离的分割等方法进行字符的分割。
最后是字符识别。
字符识别的目标是对分割出的单个字符进行识别。
这一步骤主要包括特征提取和分类识别两个过程。
特征提取是从分割出的字符图像中提取出有区分度的特征,以供后续的分类识别使用。
常用的特征提取方法有灰度共生矩阵、梯度直方图、字母轮廓等。
分类识别是将提取出的特征与已知字符模板进行比较,找到最相似的字符进行识别。
常用的分类识别方法有模板匹配、神经网络、支持向量机等。
综上所述,车牌识别算法主要包括车牌定位、字符分割和字符识别三个步骤。
这些步骤通过一系列的图像处理和特征提取方法,对车牌图像进行处理和分析,并最终实现车牌的识别和提取。
车牌定位
3.1车牌区域定位3.1.1定位算法研究车牌定位是车牌识别系统的一项关键技术,也是难点之一。
因为现场采集的车辆图像受环境影响,采集的车辆图像质量波动较大,同时存在其它字符区域的干扰,使得真实车牌区域难以准确定位。
第二章中已经采用图像滤波、二值化、边缘检测等预处理方法增强图片效果,本章主要解决车辆图像中准确定位车牌区域的问题。
车牌图像的定位处理算法,常用的有以下几种:1.基于纹理特征的车牌定位法车辆图像随拍摄环境的变化而不同,然而车辆牌照具有不因外部条件变化而改变的特征。
车牌内有多个基本成水平排列的字符,字符和牌照底在灰度值上存在跳变,因而车牌这个矩形区域(包括边缘)有丰富的边缘存在,呈现出规则的纹理特征。
在传统的基于灰度分割技术上,这些特征为车牌定位研究提供了切实可行的依据。
基于纹理分析的方法利用车牌区域内字符纹理丰富的特征定位车牌,它对于光照偏弱、偏强、不均匀性、牌照倾斜和变形等情况不敏感。
但该方法应用于背景复杂的图像时,容易把一些纹理分布较丰富的非车牌区域定位进来,产生包含车牌在内的车牌候选区域,这是纹理分析方法的缺陷。
2.基于神经网络的定位算法利用神经网络来定位车牌是一类较为常见的方法。
本算法的基本步骤和各模块的功能如下:(1)神经网络训练模块:收集一定数量的车牌图像样本,归一化后输入至BP神经网络进行训练,达到预定的正确率后,训练结束。
本模块将获得一个对车牌敏感的BP神经网络。
(2)图像预处理模块:提取车牌前,对图像进行预处理;抑制噪声,提高图片质量。
(3)车牌定位模块:利用训练好的神经网络在图像中搜索车牌区域,定位车牌。
本方法的特点是从车牌区域特征来判别牌照,因此在搜索时会重点考虑以下表面特征(如边缘、对比度、纹理等)而忽视图像区域的内容。
有用信号的特征有时会误导搜索,如果因为定位模块忽视了非牌照区域包含的车牌特征信号点,将这些区域送入后续步骤将会影响车牌字符识别。
4基于特征统计的车牌定位基于特征统计的车牌定位利用车牌区域的结构特征和字符纹理特征。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近年来,智能交通系统(ITS)越来越受到人们的重视在车牌识别中,车牌自动识别系统作为核心部分之一应用已经越来越普及。
车牌识别系统主要分车牌定位、字符切分和字符识别三部分,而车牌定位又是系统中最重要的步骤,定位的成功与否以及定位的准确程度将会直接决定后期能否进行车牌识别以及识别的准确度。
文中利用MATLAB进行分析与仿真。
MATLAB是一种简单,高效、功能强大的高级语言,在科学与工程计算领域有着广泛的应用前途。
在数字图像处理领域,可应用MATLAB数字图像处理技术进行系统分析与设计。
本文要讨论的是对彩色车牌图像进行包括灰度化、二值化、图像增强、边缘检测的预处理,之后进行区域提取来实现对车牌的初定位。
借助MATLAB编程语言在仿真过程中分析现有算法并加以改进。
1 车牌定位中的基本理论与算法1.1图像灰度化彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。
经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
在车牌识别中要利用灰度分布的特征进行进一步的分割、识别,因此对车牌图像进行灰度化成为车牌定位的必要步骤之一。
1.2图像二值化二值图像是指整幅图像画面内仅黑、白二值的图像。
在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。
车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。
如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,常用的二值化方法有直方图统计法、固定门限法、动态阈值法、松弛法、抖动矩阵二值化法等。
由于在光照较弱的情况下,车牌图像的光照程度很不均匀,车牌字符与底色的对比度偏低,所以采取动态阈值法。
1.3数学形态学及基本运算形态学的数学基础和所用语言是集合论,其基本运算有四种:膨胀、腐蚀、开启和闭合。
基于这些基本运算,还可以推导和组合成各种数学形态学实用算法。
假设用A表示目标物体,B表示结构元素,则二值形态学基本运算及实用算法如下:如果图像A用结构元素B来膨胀,则记作A⊕B,其定义为:其中,膨胀运算首先作B关于原点的映射,再将其映像平移x,当A与B的映射的交集不为空时B的原点就是膨胀集合的像素,结果是扩张了A的边界。
如果图像A用结构元素口来腐蚀,记作A⊙B,其定义为:上式表明用结构元素B来腐蚀的结果满足将占平移后,B仍旧全部包含在4中的工的集合,实际上是收缩了A的边界。
膨胀和腐蚀为对称运算,不是逆运算,它们可以级联结合使用。
使用同一个结构元素对图像先进行腐蚀然后再进行膨胀的运算成为开启运算,开启运算可以用于平滑边界,去除孤立的小点、切断细长搭接,消除突刺;使用同一个结构元素对图像先进行膨胀然后再进行腐蚀的运算成为闭合运算,本文中主要利用是利用开启和闭合运算的性质。
因为汽车图像经过色彩过滤后,会出现许多杂散的孤立点,用开启运算可以排除这些点的干扰。
另外,车牌区域还可能出现断裂和小孔,可以通过闭合运算使车牌区域连通,并填充车牌区域内的小孔。
本文中主要利用是利用开启和闭合运算的性质。
因为汽车图像经过色彩过滤后,会出现许多杂散的孤立点,用开启运算可以排除这些点的干扰。
另外,车牌区域还可能出现断裂和小孔,可以通过闭合运算使车牌区域连通,并填充车牌区域内的小孔。
1.4边缘检测图像的边缘是图像的最基本特征。
所谓边缘是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。
边缘广泛存在于物体和背景之间、物体和物体之间、基元和基元之间。
因此,它是图像分割所依赖的重要特征。
常用的边缘检测方法有Sobel 边缘算子、Prewitt 边缘算子、Kirseh 边缘算子、高斯--拉普拉斯算子等等。
该文采用的是Canny边缘检测的方法。
该方法为最优的阶梯型边缘检测算法。
1.1.1 Canny边缘检测基本原理(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。
这就是Canny边缘检测算子。
(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。
1.1.2 Canny边缘检测算法首先用高斯滤波器平滑图象,利用用一阶偏导的有限差分来计算梯度的幅值和方向;再对梯度幅值进行非极大值抑制;然后用双阈值算法检测和连接边缘。
最后用到高斯平滑函数通过将八连接的弱像素集成到强像素,执行边缘链接。
本文通过仿真与对比的方式选择边缘检测的算子,分别对比检测要求的特征和检测起映射的效果的清晰程度。
比较之下发现目前Canny边缘检测器产生的结果最佳。
1.5区域标记对二值图像进行区域提取时,首先需要对对图像每个区域进行标记,其中应用到了连通对象进行标注函数bwlabel主要对二维二值图像中各个分离部分进行标注,其用法如下:[L,num] = bwlabel(BW,n)其中,L表示返回和BW相同大小的数组,而且包含了连通对象的标注。
参数n为4或8,分别对应4邻域和8邻域,默认值为8。
Num为返回连通数。
然后,需要得到图像区域属性。
计算每个区域的图像特征参数:区域中心位置、最小包含矩形、面积。
这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函数:regionprops。
它的用途是get the properties of region,即用来度量图像区域属性的函数。
其用法如下:STATS = regionprops(L,properties)其中,测量标注矩阵L中每一个标注区域的一系列属性。
L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。
返回值STATS是一个长度为max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。
properties 可以是由逗号分割的字符串列表、饱含字符串的单元数组、单个字符串‘all' 或者‘basic'。
如果 properties 等于字符串‘all',则所有下述字串列表中的度量数据都将被计算,如果 properties 没有指定或者等于‘basic',则属性:‘Area', ‘Centroid', 和‘BoundingBox' 将被计算。
本文对已经得到了可行车牌区域的连通域,进行连通域分析均用到上述函数,从而计算出包含所标记的区域的最小宽和高。
并根据先验知识,即对标准车牌而言这个宽高比大致为3.14 ,不妨取2~4 为字符区域的宽高比范围。
比较谁的宽高比更接近实际车牌宽高比,将更接近的提取并显示出来。
2 仿真实验2.1 图像的预处理2.1.1 图像灰度化将采集到的彩色车牌图像转化为灰度图像。
%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor); %转换成灰度图figure,imshow(Sgray), title('原始黑白图像');以下展示了原始彩色图像与灰度图像对比的效果:图 1 原始彩色图像与灰度图像对比效果2.1.2 图像增强对原始图像进行开操作得到图像背景图像:s=strel('disk',13); %strel函数Bgray=imopen(Sgray,s); %打开sgray s图像figure,imshow(Bgray);title('背景图像'); %输出背景图像以下展示了背景图像效果:图2 背景图像原始图像与背景图像作减法,对图像进行增强处理:Egray=imsubtract(Sgray,Bgray); %两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像以下展示了黑白图像效果:图3 黑白图像在图像增强中值滤波是一种最常用的图像增强技术,是非线性滤波。
不过经过实验得出并不是每一种图像处理之初都适合此种方法增强。
Egray= medfilt2(Sgray,[3 3]); %中值滤波方法处理图像figure,imshow(Egray);title('增强黑白图像'); %输出黑白图像以下展示了黑白图像效果:图4 中值滤波的黑白图像为了保存更多的有用信息和提高图像清晰对为之后图像二值化做准备,经多次比较仿真结果选择图3作为后期处理图片。
2.1.2取得最佳阈值,将图像二值化二值图像是指整幅图像画面内仅黑、白二值的图像。
在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息选取最佳阈值对图像进行二值化处理:fmax1=double(max(max(Egray))); %Egray的最大值并输出双精度型fmin1=double(min(min(Egray))); %Egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255; %获得最佳阈值bw22=im2bw(Egray,level); %转换图像为二进制图像bw2=double(bw22);figure,imshow(bw2);title('图像二值化');%得到二值图像以下展示了二值效果:图4 二值图像2.2边缘检测仿真实验对图像进行边缘提取处理:grd=edge(bw2,'canny') %用canny算子识别强度图像中的边界grd1=edge(bw2,'roberts') %用roberts算子识别强度图像中的边界figure,subplot(2,2,1),imshow(grd); title('边缘提取canny');subplot(2,2,2),imshow(grd1);title('边缘提取roberts'); %输出灰度图像以下展示了分别使用canny算子和roberts算子的对比效果:图5 边缘检测两种算子对比图像如图5所示可以明显的发现使用canny算子的边缘提取图像噪声更少、边界更加清晰,因此更加适合作为后期处理的图像来使用。
2.3 开闭操作图像滤波仿真实验对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。