几种车牌图像倾斜角度矫正算法_第1页
几种车牌图像倾斜角度矫正算法_第2页
几种车牌图像倾斜角度矫正算法_第3页
几种车牌图像倾斜角度矫正算法_第4页
几种车牌图像倾斜角度矫正算法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

汽车牌照图像倾角矫正方法争论Sobel水平方向算子对图像中的水平边缘直线进展检测[2]。Hough变换法、Radon变换法、最小二乘法和两点法四种方法来计算直线的倾角,下面将具体争论这四种方法并对其优缺点做出比较。1Hough变换法Hough变换法提取直线是一种变换域提取直线的方法,它把直线上的坐标变换到过点的直线的系数域,奇异的利用了共线和直线相交的关系。它的原理很简洁:假设有一条与原点距离为s,方向角为θ的一条直线,如图3.1所示:1sθ的直线直线上的每一点都满足方程:sxcosysin 〔3.1〕证明过程如下:3.2所示:

2坐标变换原理图ocobcosxcosncnbsinysin

〔3.2〕〔3.3〕ml上任意一点由于:所以:

socncxcosysinndyy1, md(xx1)dfndsin(yy1)sindfmdcos(xx1)cosysiny1sinxcosx1cos

〔3.4〕〔3.5〕〔3.6〕〔3.7〕〔3.8〕所以:

sxcosysinx1cosy1sin

〔3.9〕所以直线上任意一点都满足

sxcosysin

〔3.10〕x-y平面一点可以对应多个s,θ值L1L2,且满足:s1x1cos1y1sin1 〔3.11〕s2x1cos2y1sin2 所以,x-o-y平面上的一点〔x1,y1〕s-o-θ平面上的一条曲线。sxcosysin,所以x-o-y平面上处在一条直线上S-O-θ平面上所得的曲线相交于一点。如以下图所示:4Hough变换前后比照图S-O-θ平面内点的问题[3]。Hough变换检测汽车牌照图像中直线的具体步骤为:对图像进展边缘检测,这里选用了Sobel算子检测图像中水平方向的直线。5网格图假设图像对应于x-o-y空间,定义一个S-o-θ〔θ1-180〕空间,对图像中象素为1的每一个点进展计算〔应用公式〔3.10〕,做出每一个象素为1的点的曲线,同时把S-θ平面分成等间隔(1×1)的小网格,这个小网格对应一个记数矩阵。如图大值对应原始图像中最长的直线。检测出记数矩阵的最大的元素所对应的列坐标θ,θ即为这条直线的法线与X轴的夹角。因此我们可以通过θ角来确定直线的倾斜角度,进而对图像进展矫正。Hough变换法矫正图像程序实现如下:bw=edge(l,”sobel”,”horizontal”);%检测图像边缘直线[m,n]=size(bw);%计算图像大小S=round(sqrt(m^2+n^2));%S可以取到的最大值ma=180;%θ角最大值产生初值为零的计数矩阵fori=1:mforj=1:nifbw(i,j)==1fork=1:maru=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);fori=1:mforj=1:nifr(i,j)>r(1,1)r(1,1)=r(i,j);end

end

end

c。ifc<=90rot=-c; elserot=180-c;endpic=imrotate(l,rot,”crop”);%对图片进展旋转,矫正图像下面给出了Hough变换法对倾斜图像进展矫正后的图像:2Radon变换法

7Hough3.6矫正后图像则所得的投影最短。Radon变换理论就是这样一种投影理论。用这种方法可以检测图像中的直线。Radonf(x,y)的投影是在某一方向上的线积分,例如f(x,y)xy方向x”f(x,y)Radonf(x,y)轴的线积分,格式如下:x”

R(x”)f(x”cosy”sin,x”siny”cos)dy” 〔3.13〕 sinxy”

sin

cosy其中

〔3.14〕8角方向的投影HoughRadon变换来检edge函数计算图像的边缘二值图像,检测出原始图像中的直线。9边缘图1的点进展运算〔0-179度方向上分别做投影〕其命令格式如下:theta=0:179;Radon变换figure,image(theta,xp,r);%显示变换效果图检测出Radon变换矩阵中的峰值,这些峰值对应原始图像中的直线〔上图中的四个亮点对应图3.9中的四条直线〕。Radon变换矩阵中的这些峰值的列坐标θ就是90-θ。图像倾角矫正具体程序实现如下:”horizontal”);%Sobel水平算子对图像边缘化bw1=imcrop(bw1,[00500100]);%theta角度范围Radon变换[m,n]=size(r);c=1;fori=1:mforj=1:nif r(1,1)<r(i,j)r(1,1)=r(i,j);c=j;endendend %Radon变换矩阵中的峰值所对应的列坐标rot=90-c;%确定旋转角度对图像进展旋转矫正线性回归法

10矫正后所得图像元线性回归法拟合这条直线。11最小二乘原理图这条直线的一元线性回归模型为:y x0 1D2 0 (3.15)设上图中点的坐标分别是(x,y),(x,y),……,(x,y)。用最小二乘算法来估量和。1 1 2 2 n n 0 1则有:i 0 1 i y x i 0 1 i i,D 2 (3.16)i用最小二乘算法来计算,找到准则函数,记为Q 求Q的最小值:

)0, 1

n 2ii1

n (y i i1

x)21 i

(3.17)Q2n(y i0 i1

x0 1i

)20

(3.18)由上式可得:

Q2n1

x(yi

x0 1i

)20

(3.19) L1

xy

xx (3.20) y x0 1

(3.21)其中:

n 2 nL (xxx i

x)

x2nx2i

(3.22)i1 i1L nxy

(xx)(yi

y)

xynxyi ii1 i1估量出了直线的斜率和截距,我们就可以估量出这条直线的方程了[5]。

(3.23)像二值化的阈值完全可以取的高一点。执行bw=im2bw(pic,0.3)我们可以得到下面的图像:12二值化后的汽车牌照图像过最小二乘法拟合这条边界直线,从而确定图像的倾角。具体方法如下:〔每列第一次由黑变白的点,且这一列的下两点还是白的话就可以判为边界点[6]ab。L。rot=ata〔最小二乘法程序实现如下:[m,n]=size(l);bw=im2bw(l,0.3);t=1;s=1;forj=144:1:n-144fori=1:fix(m/4)ifbw(i,j)==0&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1%检测边缘点Cbreak;end

end

endt=t+1;s=s+1;x=0;y=0;x1=0;fori=1:length(c)x=x+c(i);x1=x1+c(i)^2;endfori=1:length(b1)y=y+b1(i);endy=y/length(b1);x=x/length(c);c1=x;x=length(c)*x*x;lxy=x1-x;lxx=0;fori=1:length(b1)lxx=lxx+(c(i)-c1)*(b1(i)-y);endr=lxy/lxx;%以上为计算直线参数rot=atan(r);%取余切theta=rot*180/3.142;%将弧度转换为角度pic=imrotate(l,theta,”crop”);两点法

136矫正后图像图像与背景交线的一系列坐标点,这些点近似分布在一条直线上。14两点法原理图如图14所示:a,b,c,a’,b’,c’点近似分布在一条直线L上,直线L的斜率与直线aa’,bb’,cc’的斜率,再求平均值,平均值就可LL的倾角了。〔做出直线的两点的距离尽量大,然后计算这一百条直线的斜率,而后确定一百个倾斜角度并求出其平计算所得数据的一局部:Columns1through16-13.2785 -13.2785 -13.2785 -13.2785 -13.2785 -13.2785 -13.2785 -12.9409-13.2785 -13.2785 -13.2785 -12.9409 -13.2785 -13.2785 -13.2785 -13.2785Columns17through32-12.9409 -13.2785 -13.2785 -13.2785 -12.9409 -13.2785 -13.2785 -13.2785-12.9409 -13.2785 -13.2785 -13.2785 -12.9409 -12.9409 -13.2785 -13.2785rot1=-13.0692两点法具体程序实现如下:[m,n]=size(l);t=1;s=1;forj=144:n-144fori=1:fix(m/4)ifbw(i,j)==0&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1&bw(i+4,j)==1c(t)=i;b(s)=j;break;elseifbw(i,j)==1&bw(i+1,j)==1&bw(i+2,j)==1&bw(i+3,j)==1c(t)=0;b(s)=j;break;endend

end

t=t+1;s=s+1;v=1;fori=1:100rot(v)=((c(262-i)-c(101-i)))/(b(262-i)-b(101-i));计算每条直线的斜率v=v+1;endrot=atan(rot);%取余切把弧度转换为角度sum=0;fori=1:100sum=sum+rot(i);endrot1=sum/100;pic=imrotate(l,rot1,”c

温馨提示

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

评论

0/150

提交评论