为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

车牌图像倾斜角度矫正方法的研究与实现

2017-09-28 38页 doc 219KB 52阅读

用户头像

is_792768

暂无简介

举报
车牌图像倾斜角度矫正方法的研究与实现车牌图像倾斜角度矫正方法的研究与实现 本科生毕业设计(论文) 第I页 车牌图像倾斜角度矫正方法的研究与实现 摘 要 车牌矫正是车牌定位和字符分割的一个重要处理过程。经过车牌定位后所获取的车牌图像不可避免地存在某种程度的倾斜。这种倾斜不仅会给下一步字符分割带来困难~最终也将对车牌的识别的正确率造成直接的影响。本设计主要研究了对车牌图像倾斜角度矫正的算法。本文给出了矫正倾角的四种方法:Hough变换法、Radon变换法、线性回归法和两点法~并详细介绍了这四种方法的原理、算法步骤、具体程序实现过程、仿真结果及各自的优缺点。H...
车牌图像倾斜角度矫正方法的研究与实现
车牌图像倾斜角度矫正方法的研究与实现 本科生毕业(论文) 第I页 车牌图像倾斜角度矫正方法的研究与实现 摘 要 车牌矫正是车牌定位和字符分割的一个重要处理过程。经过车牌定位后所获取的车牌图像不可避免地存在某种程度的倾斜。这种倾斜不仅会给下一步字符分割带来困难~最终也将对车牌的识别的正确率造成直接的影响。本设计主要研究了对车牌图像倾斜角度矫正的算法。本文给出了矫正倾角的四种方法:Hough变换法、Radon变换法、线性回归法和两点法~并详细介绍了这四种方法的原理、算法步骤、具体程序实现过程、仿真结果及各自的优缺点。Hough变换和Radon相似~其抗干扰能力比较强~但是运算量大~程序执行慢~Hough变换法和Radon变换法进行倾角检测的最大精度为1度。它们的优点是可以计算有断点的直线的倾角。最小二乘法的优点就是运算量小~但是其抗干扰能力比较差~容易受到噪声的影响。两点法虽然理论简单~但由于采样点比较多而且这些点服从随机分布~计算均值后能有效抑制干扰。 关键字:图像倾斜角度,倾角矫正,图像处理 本科生毕业设计(论文) 第II页 Research on Correction Method of Plate Image Angle and its Implementation Abstract License plate correction is a license plate localization and sung-i1 is an important process. After the license plate location obtained after vehicle images inevitably exists some degree of tilt. This will not only give next tilt difficult character segment, will finally of vehicle license plate recognition accuracy cause immediate impact. This paper mainly studies the Angle correction of vehicle images of the algorithm. This paper gives the correct Angle of four methods: Hough transform method, Radon transformation method, linear regression method and two points, and introduces the principle of the four methods algorithm process, specific procedures, implementation process, the simulation results and their respective advantages and disadvantages. Hough transform and Radon similar, antiinterference ability is stronger, but the big, program execution gate-level Hough transform method and slow, Radon transformation method for the biggest precision Angle detection 1 degree. Their advantage is that it can calculate the linear inclination breakpoint,. The advantages of least-square method is determinately but antiinterference ability is poorer, vulnerable to noise impact. Two points although theory is simple, but because sampling points more and these point to obey random distribution, mean can effectively restrain calculated after interference. Keywords: image Angle; Angle correction; Image processing 本科生毕业设计(论文) 第III页 目 录 摘 要 ................................................................................................................................. I Abstract ............................................................................................................................... II 1. 绪论 .................................................................................................................................1 1.1 课题背景及目的......................................................................................................1 1.2 国内外研究现状......................................................................................................2 1.3 应用范围 .................................................................................................................2 2. MATLAB与数字图像处理 .......................................................................................4 2.1 MATLAB简介 ........................................................................................................4 2.2 MATLAB与数字图像处理 .....................................................................................5 3. 汽车牌照图像倾角矫正方法研究 ...........................................................................7 3.1 Hough变换法 ..........................................................................................................7 3.2 Radon变换法 ......................................................................................................... 12 3.3 线性回归法 ........................................................................................................... 14 3.4 两点法 ................................................................................................................... 18 总结 .................................................................................................................................... 22 致谢 .................................................................................................................................... 23 参考文献 ........................................................................................................................... 24 本科生毕业设计(论文) 第1页 1. 绪论 1.1 课题背景及目的 车牌矫正是车牌识别的一个重要处理过程,车牌识别是智能交通系统中一个重要的组成部分。智能交通系统是在现有的交通状况下,充分利用高新技术进行合理的交通需求分配和管理,通过卫星导航系统、汽车自动引路系统、交通新型通信系统、视频监控和计算机管理等多种技术手段,将整个路网的通行能力迅速提高,实现安全、快速和便捷运输的一种交通治理。 智能交通系统是目前世界交通运输的前沿研究课题,而车牌识别技术又是智能交通系统中的重要一环,是实现智能交通系统的前提。90年代初,随着我国经济的快速发展,交通需求量越来越大,而我国的基础设施建设速度远远低于车辆增长的速度,据2000 年统计,中国机动车约有5000多万辆,大城市机动车年增长率约为 15%,而城市道路建设数量每年仅增长 3%-5%。因此,为了解决道路与车辆的矛盾以及交通安全、环境污染等一系列问题,我国一方面加紧道路基础设施建设,一方面也着手开始智能交通系统的研制工作,并在1997年召开了第一届国际智能交通会议,与会者发表了大量国内外 [1-2]交通设备和技术的#考察#,提出了一系列相关问题和解决方法。对智能交通系统的研究最初起源于智能车辆与道路系统。之后世界各国先后投入大量资金和人员,以期在未来的智能交通系统市场中占据有利地位。欧洲早在70年代就开始智能交通的研究,2000 年欧共体推出了e-Europe的,旨在投入更多人力物力推进智能交通系统在欧洲的进程;日本也在70年代研制成功了一些道路控制系统。经过多年的发展,目前欧美和日本等一些国家在智能交通系统研究和开发方面处于领先地位,美国的一些州区已经采用了成熟的智能交通系统技术,这些系统每年可节省大量的时间和资金。 我国在70年代就将电子技术和信息技术应用于交通领域,但直到90年代才引入智能运输的概念。70年代末、80年代初,我国开始在交通运输和管理中应用电子信息技术进行十字路口信号灯控制的研究工作,通过与发达国家进行广泛的交流与合作后,目前在智能交通系统的理论研究、产品开发和工程应用上都取得了一定的成绩, 如北京公安交通科研所研制了黑白型闯红灯监视系统;西安交通大学人工智能与机器人研究所成功开发了黑白车辆牌照自动识别系统;系统工程研究所刘宁博士、方百五教授 本科生毕业设计(论文) 第2页 研究开发了基于图像的车型分类系统实现了收费智能化等。在汽车牌照识别系统中,拍摄到倾斜的车牌在所难免,这主要是由于摄像机和车牌之间的相对位置不同所造成,从而给后续字符分割带来不利的影响。另外,倾斜的车牌还会导致字符变形,给字符识别带来困难,造成识别率下降。因此,倾斜矫正过程在车牌识别系统中至关重要。 1.2 国内外研究现状 车辆牌照矫正识别是计算机视觉与模式识别在智能交通领域应用的重要研究课题之一,有着广泛的实际应用前景。美国、日本、澳大利亚、意大利、法国、英国、韩国等国家以及中国大陆和台湾从80年代起就加强了牌照识别的研究工作。这其中许多已有实际应用,如Comelli交通识别收费站的意大利汽车尾部牌照识别系统,识别率达91%。澳大利亚Auty等建立了基于图像处理的交通监控系统,称为Safe-TCam系统,能24小时运作,并摄取时速160公里/小时的汽车图像,该系统包括车辆检测与分类子系统,图像摄取子系统,每秒处理50帧图像,准确率达到90%。一家名为Cmpiit Hcognition System的公司在一个国际交通展示会上发布他们所研制的最先进的车辆识别系统。该系统在240公里/小时的车速下,能实时记录车牌的每一个字符,这项技术将用于公共停车场的安全防盗管理。但查阅有关交通工程的外文资料(包括Traffic Engineering,Control等刊物所载的世界各国交通控制研究中心的年度报告),国外的汽车牌照完全识别成功的非常少,针对中国车牌进行实时识别的技术及系统成果识别率更是难以达到完全实用要求。目前,国内研究的车牌自动识别系统在全天候的条件下,识别精度不高,识别时间长,效果很不理想。不过仍有一些科研机构如清华大学、浙江大学、西安电子科技大学、上海交通大学以及北京奥特斯公司、广东路路通公司等对中国车牌识别技术进行了研究和开发,总体还是取得了一定的进展。 1.3 应用范围 车牌矫正识别的应用范围非常广泛,这也是各国积极参与研究的原因,目前它主用于: (1)交通流检测、控制和引导,如闯红灯等违章车辆监控; (2)汽车的车库管理、智能小区车辆管理; 本科生毕业设计(论文) 第3页 (3)机场、港口和边境等出入口车辆管理; (4)高速公路入口无人值守车辆不停车进入系统,高速公路和道路桥梁的不停车 自动收费系统; (5)公共停车场安全防盗管理系统; (6)计时出行时间; (7)车辆安全防盗、查堵指定车辆等公共停车场安全防盗管理; (8)免费口查验假免费车。 本科生毕业设计(论文) 第4页 2. MATLAB与数字图像处理 2.1 MATLAB简介 Mathwork公司于1967年推出了矩阵实验室“Matrix Laboratory”(缩写为Matlab)这就是Matlab最早的雏形。开发的最早的目的是帮助学校的老师和学生更好的授课和学习。美国从MATLAB诞生开始,由于其高度的集成性及应用的方便性,在美国高校中得到了极大的欢迎。MATLAB自1984年由美国MathWorks1公司推向市场以来,历经十几年的发展,现已成为国际公认的最优秀的科技应用软件。 MATLAB是一种解释性执行语言,具有强大的计算、仿真、绘图等功能。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 总的来说,该软件有三大特点。一是计算功能强大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;二是界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与教科书的数学表达式相近;三是开放性强。该公司本身就推出了30多个应用工具箱,而世界上超过200家公司开发出与MATLAB兼容的第三方产品,这些产品向用户提供更多的工具箱、模块集、与其他商业产品的接口等。 语言自然是MATLAB深受用户喜爱的重要原因之一。在MATLAB中,基本的计算单元是矩阵,复数或实数则可以理解为1×1的矩阵。MATLAB的很多运算都是直接针对矩阵的,所以表示起来也就特别方便。例如,复数“A=3,2i”,在MATLAB中表示就是“A=3,2i”。又如,要计算两个矩阵C、D的乘积,可以表示为“C×D”,而不像大多数计算机语言那样需要用户编写循环语句来实现,使初学者更容易掌握这种软件。 MATLAB的这些特点使它获得了对应用学科(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、教学,乃至科技文字处理不可缺少的基础软件。 和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要。也 本科生毕业设计(论文) 第5页 可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。目前的MATLAB版本可以方便的制作漂亮的GUI(图形用户)界面,它可以像vb等语言一样设计漂亮的用户接口,人机对话功能更强大。 由于它使用简单,扩充方便,尤其是世界上有成千上万的不同领域的科研工作者不停的在自己的科研过程中扩充MATLAB的功能,使其成为了巨大的知识宝库。科研工作者通常可以通过MATLAB来学习某个领域的科学知识,这就是MATLAB真正在全世界推广开来的原因。同时因为有最丰富的函数库(工具箱)所以计算的功能实现也很简单,进一步受到了科研工作者的欢迎。另外,MATLAB和其他高级语言也具有良好的接口,可以方便的实现与其他语言的混合编程,进一步拓宽了MATLAB的应用潜力。可以说,MATLAB已经也很有必要成为大学生的必修课之一,掌握这门工具对学习各门学科有非常重要的推进作用。 MATLAB还有非常完善的使用手册,不仅包括使用方法,还有涉及的科学知识,非常简单易读。 2.2 MATLAB与数字图像处理 数字图像是指由被称作像素的小块区域组成的二维矩阵。将物理图像行列划分后,每个小块区域称为像素(pixel)。 每个像素包括两个属性:位置和灰度。 对于单色即灰度图像而言,每个像素的亮度用一个数值来表示,通常数值范围在0到255之间,即可用一个字节来表示,0表示黑、255表示白,而其它表示灰度级别。彩色图像可以用红、绿、蓝三元组的二维矩阵来表示。通常,三元组的每个数值也是在0到255之间,0表示相应的基色在该像素中没有,而255则代表相应的基色在该像素中取得最大值,这种情况下每个像素可用三个字节来表示。由于像素是数字图像的最小单元,图像以矩阵形式存在, 而MATLAB正是以矩阵为基本计算单元,所以用MATLAB软件做图像处理是非常方便的。 MATLAB有强大的图像处理功能,图像处理工具包是由一系列支持图像处理操作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT变换);图像分析和增强;二值图像操作等。 图像处理工具包的函数,按功能可以分为以下几类:图像显示(imshow,subplot); 本科生毕业设计(论文) 第6页 图像文件输入与输出(imread);几何操作(imcrop,imrotate);象素值和统计(mean,mean2,corr2,std2);图像分析(edge)与增强(imadjust,histeq);图像滤波(wiener2,ordfilt2,medfilt2);线性二维滤波器设计(freqz2,fsamp2);图像变换(radon,hough,fft2);领域和块操作(bestblk);二值图像操作(bwarea);颜色映射(brighten)和颜色空间转换(hsv2rgb,rgb2hsv);图像类型和类型转换(im2bw);工具包参数获取和设置等。 由于图像操作很多,这里仅仅以图像的噪声消除为例,来说明该工具包的基本使用方法。在图像处理中,经常要对噪声污染的图像进行去噪操作。图像处理工具包提供了多种消除或降低噪声的方法。不同的方法应用于不同种类的噪声。这些方法是:线性滤波、中值滤波(edfilt2)和自适应滤波(wiener2)等。此外为了模拟各种噪声的作用,工具包还提供了imnoise()函数,通过这个函数,可以向图像加入各种不同的噪声。 当然,图像降质的原因是多种多样的,可以根据不同的降质原因建立相应的数学模型,由于MATLAB强大的数学功能,无论使用连续或是离散方法,都是可能的。举个最简单的例子,如果图像降质是由于附加了背景噪声图案而引起,那么只要知道了背景图案,两幅图相差就可以较好的恢复原图像。这在MATLAB中用两个矩阵相减就可实现。 由于MATLAB具有学习容易,操作简单的特点,而且数字图像处理功能十分强大,对于刚刚接触数字图像处理的人来说,利用其进行数字图像处理非常合适。 本科生毕业设计(论文) 第7页 3. 汽车牌照图像倾角矫正方法研究 首先我们对汽车牌照图像进行边缘检测,找出图像与背景的交线,然后就可以通过一定算法确定图像的倾斜角度了。这里采用了Sobel水平方向算子对图像中的水平边缘 [2]直线进行检测。 检测出图像中的直线后,我们要对其倾角进行计算,这里选用了Hough变换法、Radon变换法、最小二乘法和两点法四种方法来计算直线的倾角,下面将具体研究这四种方法并对其优缺点做出比较。 3.1 Hough变换法 利用Hough变换法提取直线是一种变换域提取直线的方法,它把直线上的坐标变换到过点的直线的系数域,巧妙的利用了共线和直线相交的关系。 它的原理很简单:假设有一条与原点距离为s,方向角为θ的一条直线,如图3.1所示: 图3.1 一条与原点距离为s,方向角为θ的直线 直线上的每一点都满足方程: s,xcos,,ysin, (3.1) 证明过程如下: 本科生毕业设计(论文) 第8页 图3.2 坐标变换原理图 如图3.2所示: (3.2) oc,obcos,,xcos, (3.3) nc,nbsin,,ysin, 所以 : (3.4) s,oc,nc,xcos,,ysin, m为直线l上任意一点 (3.5) nd,y,y1,md,,(x,x1) 因为: (3.6) df,ndsin,,(y,y1)sin, (3.7) df,mdcos,,,(x,x1)cos, 所以: ysin,,y1sin,,,xcos,,x1cos, (3.8) 所以: s,xcos,,ysin,,x1cos,,y1sin, (3.9) 所以直线上任意一点都满足 s,xcos,,ysin, (3.10) 本科生毕业设计(论文) 第9页 图3.3 x-y平面一点可以对应多个 s,θ值 由图3.3可以看出点(x1,y1)即属于直线L1又属于直线L2,且满足: (3.11) s1,x1cos,1,y1sin,1 s2,x1cos,2,y1sin,2 (3.12) 所以,x-o-y平面上的一点(x1,y1)对应于s-o-θ平面上的一条曲线。 由于一条直线上的点都满足所以x-o-y平面上处在一条直线上s,xcos,,ysin,, 的点经过变换在S-O-θ平面上所得的曲线相交于一点。如下图所示: 图3.4 Hough变换前后对比图 [3]因此可以把x-o-y平面内直线的问题转化为S-O-θ平面内点的问题。 用Hough变换检测汽车牌照图像中直线的具体步骤为: 本科生毕业设计(论文) 第10页 (1)对图像进行边缘检测,这里选用了Sobel算子检测图像中水平方向的直线。 图3.5 网格图 (2)假设图像对应于x-o-y空间,定义一个S-o-θ(θ角的范围为1-180)空间,对图像中象素为1的每一个点进行计算(应用公式(3.10)),做出每一个象素为1的点的曲线,同时把S-θ平面分成等间隔(1×1)的小网格,这个小网格对应一个记数矩阵。如图3.5所示,凡是曲线所经过的网格,对应的记数矩阵元素值加1,所以对原图像中的每一点进行计算以后记数矩阵元素的值等于共线的点数。我们可以认为记数矩阵中元素的最大值对应原始图像中最长的直线。 (3)检测出记数矩阵的最大的元素所对应的列坐标θ,θ即为这条直线的法线与X轴的夹角。因此我们可以通过θ角来确定直线的倾斜角度,进而对图像进行矫正。 图3.6 倾角矫正前图像 Hough变换法矫正图像程序实现如下: bw=edge(l,'sobel','horizontal');%检测图像边缘直线 [m,n]=size(bw);%计算图像大小 S=round(sqrt(m^2+n^2));%S可以取到的最大值 本科生毕业设计(论文) 第11页 ma=180;%θ角最大值 r=zeros(md,ma);%产生初值为零的计数矩阵 for i=1:m for j=1:n if bw(i,j)==1 for k=1:ma ru=round(abs(i*cos(k*3.14/180)+j*sin(k*3.14/180))); r(ru+1,k)=r(ru+1,k)+1;%对矩阵记数 end end end end [m,n]=size(r); for i=1:m for j=1:n if r(i,j)>r(1,1) r(1,1)=r(i,j); c=j;%把矩阵元素最大值所对应的列坐标送给c。 end end end if c<=90 rot=-c; %确定旋转角度 else rot=180-c; end pic=imrotate(l,rot,'crop'); %对图片进行旋转,矫正图像 下面给出了Hough变换法对倾斜图像进行矫正后的图像: 本科生毕业设计(论文) 第12页 图3.7 Hough变换法对图3.6矫正后图像 3.2 Radon变换法 我们知道,一条直线沿它的法线方向投影所得的投影最长,而沿与其平行方向投影则所得的投影最短。Radon变换理论就是这样一种投影理论。用这种方法可以检测图像中的直线。 Radon变换的定义:二元函数f(x,y)的投影是在某一方向上的线积分,例如f(x,y)在垂直方向上的线积分是f(x,y)在x方向上的投影,在水平方向上的线积分是在y方向上的投影,沿y'方向的线积分是沿x'方向上的投影。投影可沿任意角度进行,通常f(x,y)的Radon变换是f(x,y)平行于y’轴的线积分,格式如下: ,,R(x'),f(x'cos,,y'sin,,x'sin,,y'cos,)dy' (3.13) ,,,, 'cos,sin,xx,,,,,,,,,,,,,'sin,cos,y,y,,,,,,其中 (3.14) 本科生毕业设计(论文) 第13页 图3.8 矩形函数在水平垂直方向和沿θ角方向的投影 Radon 变换与计算机视觉中的Hough变换很相似,我们可以利用Radon变换来检 [4]测图像中的直线的倾斜角度。利用Radon变换检测直线倾斜角度的具体步骤为: (1)用edge函数计算图像的边缘二值图像,检测出原始图像中的直线。 图3.9 边缘图 (2)计算边缘图像的Radon变换,对每一个象素为1的点进行运算(0-179度方向上分别做投影)其命令格式如下: theta=0:179; [r,xp]=radon(bw1,theta);%计算边缘图像的Radon变换 figure,image(theta,xp,r);%显示变换效果图 本科生毕业设计(论文) 第14页 (3)检测出Radon变换矩阵中的峰值,这些峰值对应原始图像中的直线(上图中的四个亮点对应图3.9中的四条直线)。Radon变换矩阵中的这些峰值的列坐标θ就是与原始图像中的直线垂直的直线的倾斜角度,所以图像中直线的倾角为90-θ。 图像倾角矫正具体程序实现如下: bw1=edge(l1,'sobel', 'horizontal');%用Sobel水平算子对图像边缘化 bw1=imcrop(bw1,[0 0 500 100]);%对图像进行剪切,保留图像中的一条直线,减小运算量 theta=0:179;%定义theta角度范围 r=radon(bw1,theta);%对图像进行Radon变换 [m,n]=size(r); c=1; for i=1:m for j=1:n if r(1,1) 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); end end %--------------------------------------------------------------------- %获取列表框句柄值 function varargout = listbox1_Callback(h, eventdata, handles, varargin) global m m=get(gco,'value') %--------------------------------------------------------------------- %获取列表框句柄值 本科生毕业设计(论文) 第26页 function varargout = popupmenu1_Callback(h, eventdata, handles, varargin) global k k=get(gco,'value') % -------------------------------------------------------------------- %以下为图片读入程序 function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) global m n k l p y l1 pic h if m==1 y=imread('c:\zyx\biyesheji001.bmp'); %读入图片 subplot(3,3,2);imshow(y); %显示图片 elseif m==2 y=imread('c:\zyx\biyesheji002.bmp'); subplot(3,3,2);imshow(y); %显示图片 elseif m==3 y=imread('c:\zyx\biyesheji003.bmp'); subplot(3,3,2);imshow(y); %显示图片 elseif m==4 y=imread('c:\zyx\biyesheji004.bmp'); subplot(3,3,2);imshow(y); %显示图片 elseif m==5 y=imread('c:\zyx\biyesheji005.bmp'); ; subplot(3,3,2);imshow(y); %显示图片 elseif m==6 y=imread('c:\zyx\biyesheji006.bmp'); subplot(3,3,2);imshow(y); %显示图片 elseif m==7 y=imread('c:\zyx\biyesheji007.bmp'); subplot(3,3,2);imshow(y); %显示图片 elseif m==8 本科生毕业设计(论文) 第27页 y=imread('c:\zyx\biyesheji008.bmp'); ; subplot(3,3,2);imshow(y); %显示图片 elseif m==9 y=imread('c:\zyx\biyesheji009.bmp'); ; subplot(3,3,2);imshow(y); %显示图片 elseif m==10 y=imread('c:\zyx\biyesheji010.bmp'); ; subplot(3,3,2);imshow(y); %显示图片 else va=get(handles.edit2,'string'); y=imread(va); subplot(3,3,2),imshow(y); end % -------------------------------------------------------------------- %以下为滤波程序 function varargout = pushbutton2_Callback(h, eventdata, handles, varargin) global m n k l p y l1 pic h l1=wiener2(y,[5,5]); %进行维纳滤波 subplot(3,3,3);imshow(l1);%显示图片 % -------------------------------------------------------------------- %以下为倾角矫正程序 function varargout = pushbutton3_Callback(h, eventdata, handles, varargin) global m n k l p y l1 pic h pic2 c b1 area1 %radon变换矫正法矫正图像 -------------------------------------------- if k==1 l1=wiener2(y,[5,5]); %维纳滤波 bw1=edge(l1,'sobel','horizontal'); %进行水平方向边缘检测 bw1=imcrop(bw1,[0 0 500 100]); %bw1中切出一块,只保留原图中的一条直线,减 小radon的运算量 本科生毕业设计(论文) 第28页 theta=0:179; %定义theta的取值范围 r=radon(bw1,theta); %对bw1进行radon变换 [m,n]=size(r); for i=1:m*n if r(i)>r(1) r(1)=r(i); end %把radon变换阵中的最大值送给r(1) end for i=1:m for j=1:n if r(i,j)==r(1) c=j; end end end %计算radon矩阵中的最大值所对应的列坐标,存如c rot=90-c+1; %确定旋转角度 pic=imrotate(l1,rot,'crop'); %对图片进行旋转,矫正图像 subplot(3,3,6),imshow(pic); %最小二乘法矫正图像 ------------------------------------------------- elseif k==2 l1=wiener2(y,[5,5]); [m,n]=size(l1); bw=im2bw(l1,0.8); t=1;s=1; for j=144 : n-144 for i=1:fix(m/4) if bw(i,j)==0&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1&bw(i+4,j)==1 c(t)=i; b1(s)=j; 本科生毕业设计(论文) 第29页 break; elseif bw(i,j)==1&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1 c(t)=0; b1(s)=j; break; end end t=t+1;s=s+1; end x=0;y=0;x1=0; for i=1:length(c) x=x+c(i); x1=x1+c(i)^2; end for i=1:length(b1) y=y+b1(i); end y=y/length(b1); x=x/length(c); c1=x; x=length(c)*x*x; lxy=x1-x; lxx=0; for i=1:length(b1) lxx=lxx+(c(i)-c1)*(b1(i)-y); end if lxx==0 lxx=0.0001 end 本科生毕业设计(论文) 第30页 r=lxy/lxx; rot=-atan(r) theta=rot*180/3.142 pic=imrotate(l1,theta,'crop'); subplot(3,3,6),imshow(pic); %Hough变换法矫正图像 ------------------------------------------------ elseif k==3 l=wiener2(y,[5,5]); bw=edge(l,'sobel','horizontal'); bw=imcrop(bw,[100 0 350 100]); [m,n]=size(bw); md=round(sqrt(m^2+n^2)); ma=180; r=zeros(md,ma); for i=1:m for j=1:n if bw(i,j)==1 for k=1:ma ru=round(abs(i*cos(k*3.14/180)+j*sin(k*3.14/180))); r(ru+1,k)=r(ru+1,k)+1; end end end end [m,n]=size(r); for i=1:m*n if r(i)>r(1) r(1)=r(i); end %把radon变换阵中的最大值送给r(1) 本科生毕业设计(论文) 第31页 end for i=1:m for j=1:n if r(i,j)==r(1) c=j; end end end %计算radon矩阵中的最大值所对应的列坐标,存如c if c<=90 rot=-c; %确定旋转角度 else rot=180-c; end pic=imrotate(l,rot,'crop'); %对图片进行旋转,矫正图像 subplot(3,3,6),imshow(pic); %两点法矫正图像 ------------------------------------------------------ elseif k==4 l1=wiener2(y,[5,5]); [m,n]=size(l1); bw=im2bw(l1,0.3); t=1;s=1; for j=144 : n-144 for i=1:fix(m/4) if bw(i,j)==0&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1&bw(i+4,j)==1 c(t)=i; b(s)=j; break; elseif bw(i,j)==1&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1 c(t)=0; 本科生毕业设计(论文) 第32页 b(s)=j; break; end end t=t+1;s=s+1; end v=1; for i=1:100 rot(v)=((c(262-i)-c(101-i)))/(b(262-i)-b(101-i)); v=v+1; end rot=atan(rot); rot=rot*180/3.142; sum=0; for i=1:100 sum=sum+rot(i); end rot1=sum/100; pic=imrotate(l1,rot1,'crop'); subplot(3,3,6),imshow(pic); end %--------------------------------------------------------------------- function pushbutton5_Callback(hObject, eventdata, handles) global m n k l p y l1 pic h p=ones(size(pic)); %做和pic同样大小的零矩阵 subplot(3,3,2),imshow(p);%显示 subplot(3,3,3),imshow(p);%显示 subplot(3,3,5),imshow(p);%显示 subplot(3,3,6),imshow(p);%显示 本科生毕业设计(论文) 第33页 %--------------------------------------------------------------------- function edit1_Callback(hObject, eventdata, handles,varargin) %--------------------------------------------------------------------- clear function edit2_Callback(hObject, eventdata, handles) % --- Executes on button press in pushbutton4. function pushbutton8_Callback(hObject, eventdata, handles) close % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton10. function pushbutton10_Callback(hObject, eventdata, handles) global m n k l p y l1 pic h l1=wiener2(y,[5,5]); bw1=edge(l1,'sobel','horizontal'); %进行水平方向边缘检测 subplot(3,3,5);imshow(bw1); %figure %imshow(bw1) % hObject handle to pushbutton10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
/
本文档为【车牌图像倾斜角度矫正方法的研究与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索