图像分割识别.doc_第1页
图像分割识别.doc_第2页
图像分割识别.doc_第3页
图像分割识别.doc_第4页
图像分割识别.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告课程名称 数字图像处理 题 目 汽车车牌定位与字符识别 汽车车牌定位与字符识别一、 实验目的:1、巩固理论课上所学的知识。2、锻炼动手能力、激发研究潜能,增强理论联系实际的能力。二、 设计原理与步骤:定位汽车车牌并识别其中的字符,采用Matlab平台提供的一些图像处理函数,以傅立叶变换通过字符模板与待处理的图像匹配为核心思想。基本方法如下:1、读取待处理的图像,将其转化为二值图像。2、去除图像中不是车牌的区域。3、为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符。4、此时车牌所在白色连通域已清晰可见,但一个更大的连通域将车牌所在连通域包围了,需将其填充。5、查找连通域边界。同时保留此图形,以备后面在它上面做标记。6、找出所有连通域中最可能是车牌的那一个。判断的标准是:测得该车牌的长宽比约为X:1,其面积和周长存在关系:(XLL)/(2(X1)L)21/Y,以此为特征,取metric=Y*area/perimeter2作为连通域的匹配度,它越接近1,说明对应的连通域越有可能是X:1的矩形。7、将车牌图像反白处理,并扩充为256256的方阵,以便傅立叶变换中矩阵旋转运算的进行。8、从文件读取一个字符模板。对图像计算傅立叶描述子,用预先定义好的决策函数对描述子进行计算。变换后的图像中,亮度的高低指示相应区域与模板的匹配程度。9、确定一个合适的门限,显示亮度大于该门限的点,也就是与模板的匹配程度最高的位置。10、对照图片,可以说明相应字符被识别和定位了。三、 实验记录及分析:待处理的图像如下所示。图像整体比较清晰干净,车牌方向端正,字体清楚,与周围颜色的反差较大。读取待处理的图像,将其转化为二值图像。经试验,采用门限值为0.2附近时车牌字符最为清楚,杂点最少。I = imread(car.jpg);I2 = rgb2gray(I); I4 = im2bw(I2, 0.2); 原始图像 二值图像去除图像中面积过小的,可以肯定不是车牌的区域。为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符。此时车牌所在白色连通域已清晰可见,但在黑色区域以外,是一个更大的白色连通域,将车牌所在连通域包围了。有必要将其填充。查找连通域边界。同时保留此图形,以备后面在它上面做标记。bw = imfill(bw,1 1); B,L = bwboundaries(bw,4);imshow(label2rgb(L, jet, .5 .5 .5)hold onfor k = 1:length(B)boundary = Bk;plot(boundary(:,2),boundary(:,1),w,LineWidth,2)end从对象中移除小对象 平滑图像的轮廓找出所有连通域中最可能是车牌的那一个。判断的标准是:测得该车牌的长宽比约为4.5:1,其面积和周长存在关系:(4.5LL)/(2(4.51)L)21/27,以此为特征,取metric=27*area/perimeter2作为连通域的匹配度,它越接近1,说明对应的连通域越有可能是4.5:1的矩形。 % 找到每个连通域的质心stats = regionprops(L,Area,Centroid);% 循环历遍每个连通域的边界% 找到每个连通域的质心stats = regionprops(L,Area,Centroid);% 循环历遍每个连通域的边界for k = 1:length(B)% 获取一条边界上的所有点 boundary = Bk;% 计算边界周长 delta_sq = diff(boundary).2; perimeter = sum(sqrt(sum(delta_sq,2);% 获取边界所围面积 area = stats(k).Area;% 计算匹配度 metric = 27*area/perimeter2;% 要显示的匹配度字串 metric_string = sprintf(%2.2f,metric);% 标记出匹配度接近1的连通域 if metric = 0.9 & metric thresh);车牌图像反白处理 变换后的图像 确定定位点对照左右两图,可以说明字符“P”被识别和定位了。同样的方法,可以识别和定位其它字符。如:识别“B” :w = imread(B.bmp); w = w;C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256);thresh = 290;识别“4” : w = imread(4.bmp);w = w;C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256);thresh = 200;识别“2” : w = imread(2.bmp);w = w;C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256);thresh = 250; 识别“B” 识别“4” 识别“2”识别“M” : w = imread(M.bmp);w = w;C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256);thresh = 265;识别“8” : w = imread(8.bmp);w = w;C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256);thresh = 250; 识别“M” 识别“8”由图可见,该程序对于“8”与“B”这样相似的字符,识别时常常混淆。四、 参考文献:1 冈萨雷斯数字图像处理(第二版)电子工业出版社,200782 郁梅等.基于视觉的车辆牌照检测,计算机应用研究,1999(5),P6567 3 刘阳.等.数字图象处理应用于车辆牌照的识别.辽宁大学学报.2004 4 宋建才.汽车牌照识别技术研究J.工业控制计算机,2004,44455 Applications of the Fourier Transform, Matlab 7.0 Help Documents, The MathWorks.五、 附录:实验源程序:I = imread(car.jpg); figure(1),imshow(I);title(原始图像);I2 = rgb2gray(I); %读取待处理的图像,将其转化为二值图像。I4 = im2bw(I2, 0.2) ; %通过设定亮度阈值将真彩色转换成二值图像。figure(2),imshow(I4);title(二值图像);bw = bwareaopen(I4, 500); %删除二值图像bw中面积小于500的图像。figure(3),imshow(bw);title(从对象中移除小对象);se = strel(disk,15); %创建圆盘半径15。bw = imclose(bw,se); %对图像实现闭运算,平滑图像的轮廓。figure(4),imshow(bw);title(平滑图像的轮廓);bw = imfill(bw,1 1); %孔填充处理B,L = bwboundaries(bw,4); %获取二值图中对象的轮廓,求周长。imshow(label2rgb(L, jet, .5 .5 .5)hold onfor k = 1:length(B)boundary = Bk;plot(boundary(:,2),boundary(:,1),w,LineWidth,2)end% 找到每个连通域的质心stats = regionprops(L,Area,Centroid);% 循环历遍每个连通域的边界for k = 1:length(B)% 获取一条边界上的所有点boundary = Bk;% 计算边界周长delta_sq = diff(boundary).2; perimeter = sum(sqrt(sum(delta_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论