几种车牌图像倾斜角度矫正算法

合集下载

倾斜矫正方案

倾斜矫正方案

倾斜矫正方案在实际工程应用中,通常需要对摄影测量产生的倾斜图像进行矫正以提高测量精度。

本文将介绍倾斜矫正的基本概念及其两种常用方法:多点校正法和透视变换法。

倾斜矫正概述当相机轴线与平面垂直,且图像上仅出现水平和垂直的线时,我们所得到的图像称为正交图像。

但在实际拍摄中,相机轴线与平面不一定垂直,导致图像中出现非水平和垂直的线,这样的图像称为倾斜图像。

对于倾斜图像,我们常通过倾斜矫正来恢复它的正交状态,以方便后续的测量和分析。

倾斜矫正的目的就是找到一个变换,将倾斜图像投影到一个平面上,使得平面上的线条满足垂直或水平,从而实现对图像的矫正。

多点校正法多点校正法又称为多点共线法,其基本思想是在图像上取多组已知的平行线或直线组成标准点,并利用标准点的像坐标与实际坐标之间的关系来确定转换参数,从而实现对图像的矫正。

具体实现步骤如下:1.在图像上选择至少4组平行线或刻度线,用于建立像素坐标与实际距离之间的关系。

2.测量实际世界中平行线的实际距离。

3.测量图像中各组平行线之间的像素距离。

4.建立像素坐标与实际距离之间的关系,求出变换矩阵。

5.对图像进行矫正。

多点校正法的优点在于实现简单,适用范围广。

不过它对于标准点的选取有较高的要求,且标准点最好越靠近摄像机越好。

透视变换法透视变换法基于透视几何的原理,先通过对图像的旋转和缩放将倾斜图像转换为平行视图,再进行裁剪和最终的放大或缩小操作,最终还原出视角正确的图像。

具体实现步骤如下:1.提取出图像中的特征点。

2.选择三个以下的特征点,计算它们的投影坐标和真实坐标。

3.通过计算透视矩阵,对图像进行变换。

4.对变换后的图像进行裁剪和调整,还原正常图像。

透视变换法的优点在于对标准点的要求不高,但是在特征点的选取上需要更为精确。

此外,对于大型的图像,透视变换法可能会效率较低。

结论本文介绍了倾斜矫正的基本概念及其两种常用方法:多点校正法和透视变换法。

多点校正法实现简单且适用范围广,对标准点的选取有一定要求;透视变换法通过透视矩阵的计算,可以对图像进行更准确的矫正,但是在特征点的选取上需要更为精确。

车牌倾斜矫正算法的比较研究

车牌倾斜矫正算法的比较研究

= 三 =
观 察 () 可 以发 现R d n 换 的一 个 重 要 性 质 , 8 3式 ao 变 即R D f ) 据 此性 质 , 们 在 做 R d n 换 时 , , 根 我 ao 变 的取 值 范 围 只 需 要
p x o0 y i0 =c s+s n () 2 式 其 中 P表 示 圆 点 到 直 线 的 距 离 . O是 该 直 线 与 x 的 夹 角 。 的 图 像 , 先 确 定 合 适 的0 范 围 , 图像 的倾 斜 角 度 误 差 J 之 轴 事 的 因 度 这 样 直 角 坐 标 系 中 的一 条 直 线 就 对 应 于 极 坐 标 系 中 的 一 个 点 . 内 不会 影 响 到后 续 车 牌 字 符 的 分 割 及 字 符 识 别 的准 确 率 。可 以 日 而 直 角 坐 标 系 中 的一 点 则 对应 于 极 坐 标 系 中 的 一 条 正 弦 曲线 。 J 为 步 长 取 遍 取 值 范 围 内的 所 有 角 度 。 用 R dn 换 后 。 一 度 运 ao 变 每

R( = f ’ Yi, i一 sd (式 ’ 』( O O'0Y0 )’ 3 ) x S— s n OO ) C n s y
其中 r [o0 ] cs
li 一n e
Rao d n变 换 的 实 质 是 求 原 始 图 像 在 任 意 角度 0上 的投 影 。
21 0 0年第 6期


建 电

6 5
车牌 倾斜矫 正算 法的 比较研 究
李 文 趋
(泉 州 师 范 学 院 数 学 与 计 算 机 学院 福 建 泉 州 3 2 0 ) 60 0 【 摘 要 】 本 文 分 析 目前 车 牌 倾 斜 矫 正 中常 h 的 Hog : l uh变换 和 R dn变换 , 过 实验 对 比发 现 R d n变换 相 对 H uh ao 通 ao o g

车牌识别中的倾斜车牌校正算法

车牌识别中的倾斜车牌校正算法

车牌识别中的倾斜车牌校正算法
车牌识别是现代交通管理中不可或缺的技术之一。

然而,在实际应用过程中,会遇到一些车牌倾斜的情况,导致车牌识别率下降。

因此,研究车牌倾斜校正算法对车牌识别具有重要意义。

车牌识别中的倾斜车牌校正算法是针对车牌图像中出现的倾斜问题进行修正的算法。

它是通过对车牌图像进行预处理,将车牌图像进行倾斜校正,使得车牌上的字符垂直排列,以便于后续的字符识别。

在倾斜校正的过程中,常见的算法有基于角度旋转的算法、基于投影的算法、基于边缘的算法等等。

其中,基于角度旋转的算法是较为常见的一种方法。

它通过计算车牌的倾斜角度,然后进行图像的旋转,使得车牌上的字符垂直排列。

而基于投影的算法则是利用车牌上的字符进行投影,通过寻找字符的最小外接矩形,进而对图像进行校正。

基于边缘的算法则是利用车牌的边缘信息,进行边缘检测和霍夫变换,来计算车牌的倾斜角度,从而实现倾斜校正。

总的来说,车牌识别中的倾斜车牌校正算法是车牌识别技术中重要的一环。

通过对车牌图像进行倾斜校正,能够有效提高车牌识别的准确率和稳定性。

一种非传统车牌倾斜矫正方法

一种非传统车牌倾斜矫正方法

A N nt dt n l e et nrci loi m frL R o . a io a D f ci . tyA gr h P r i l o e f t o
JANG h・u I Z ih a, C N i o g, WANG W e HE J・ n r i
( e .o Ee r i E g e i Dp f l t n n i e n I o ai i c , n e i c n & T h o g hn . e i n u 2 0 2 , h a t co c n r g& n r t nS e e U i rt o i c f m o cn v sy fS e e e nl y fC i Hf h i 30 7 C i ) c o o a eA n
如果 不对 车牌进行相应 的倾斜矫 正 , 则会对后续 的边框铆钉去 除、 字符切分处理等带来很 大 的麻 烦 , 至无法 处理 。即使 能 甚
够处理也往往会 因为信息缺损 、 车牌字符变形等因素导致得到 错误 的识别结果 。可 以说 , 车牌 的倾 斜矫 正是一个富有挑战性 的工作 , 是一块我们不 愿面对却 又不得 不面 对的难 啃的骨头 。
是极为棘手的问题。
遗憾 的是 , 管车牌识别技术 的研究 工作 已经开展了将 近三十 尽
年, 相当部分 的科研人员 或是将 思维停 留在边缘 的检测 上 , 或 是对这方面的工作重视不够 , 导致这 一领 域没有本 质的突破进
丢甚至不存在的情况并不鲜见。因而, 在相当部分车牌识别系
统中 , 了保证车牌 的有 效边缘 信息 不至 于丢失 , 为 不得 不将 车 牌定位区域大小放宽 , 往 因此 引入很 多 干扰 , 往 这反 过来又 影 响到边 缘的检测和后续 的处理工作 。另外 , 在边缘检测 过程 中 以哪一个边 缘作 为检测 的基准 , 如何判断边缘存在 与否?这都

车牌识别预处理中的二值化及倾斜矫正算法(1)概要

车牌识别预处理中的二值化及倾斜矫正算法(1)概要

收稿日期:2005-03-07;修回日期:2005-09-26基金项目:国家自然科学基金项目(60325102;60428101作者简介:张思远(1976-,男,天津人,助教,硕士,研究方向为图像处理及模式识别.随着世界各国汽车数量的增加,城市的交通状况日益受到人们的关注。

智能交通系统(ITS ,intelligenttraffic system 随之产生,它通过对自动采集的实时交通信息进行分析并给出最优方案,能最大限度提高地面交通设施的利用率和效率。

车牌识别(LPR ,licenseplate recognition 技术是ITS 的关键技术之一[1-2]。

车牌识别系统可分为车牌定位、图像预处理、字符切分、字符识别4个部分[3-4],其中图像预处理是系统中的一个重要环节,主要包括图像增强、二值化[5]、去噪、车牌的倾斜矫正和车牌的二次定位。

本文针对车牌图像预处理给出了基于图像特征线的二值化阈值确定方法和针对车牌图像的倾斜矫正改进算法。

由于车牌图像在实际摄取中的特殊性,使得图像中拍到的车牌有不同程度的倾斜变形。

本文在一般矫正方法的基础上,给出了针对车牌特点的改进算法,在水平方向上采用Hough 变换[6-7]确定角度后进行旋转矫正,而在垂直方向上采用投影法[8-9]进行变形矫正,并进行矫正前后的对比,以保证矫正的效果良好。

1车牌图像二值化图像二值化的关键是阈值的选取,只要阈值选取恰当,不仅可以有效地去处噪声,而且可将图像明显地分成目标和背景,大大减少了信息量,提高了处理速度。

传统二值化阈值的确定方法主要有全局阈值法和局部阈值法,全局阈值法是根据图像的灰度直方图的统计分布确定阈值,方法简单但效果一般,抗干扰能力较差;局部阈值法是以每个像素点为中心建立一个模板,通过整个模板的灰度信息综合判断该像素点是置0还是置1,具有一定的自适应性但速度较慢。

车牌识别预处理中的二值化及倾斜矫正算法张思远,樊志远,吴仁彪(中国民用航空学院空中交通管理学院,天津300300摘要:车牌识别中的预处理包括图像增强,二值化和噪声去除。

几种车牌图像倾斜角度矫正算法

几种车牌图像倾斜角度矫正算法

几种车牌图像倾斜角度矫正算法在车牌识别领域中,图像的倾斜会对识别效果造成一定影响,因此对车牌图像进行倾斜矫正至关重要。

下面将介绍几种常见的车牌图像倾斜角度矫正算法。

1. 直线检测法直线检测法是一种常见的图像倾斜矫正方法,其基本思路是通过Hough变换检测车牌上的直线,然后根据检测到的直线的斜率来计算车牌的倾斜角度,最后对车牌进行旋转矫正。

使用直线检测法进行倾斜角度矫正的优点是算法简单易懂,适用于各种类型的车牌图像。

但是,由于车牌图像中存在干扰线条等因素,因此直线检测的准确性受到限制。

同时,该方法也存在计算量较大的问题。

2. 边缘检测法边缘检测法是一种常见的图像处理方法,在车牌图像倾斜矫正中也有广泛的应用。

该方法的基本思路是,通过边缘检测算法检测车牌图像的边缘,进而计算出车牌的倾斜角度。

最后对车牌进行旋转变换矫正。

与直线检测法相比,边缘检测法计算量较小,因此运行速度较快。

但是,由于车牌图像中存在噪点等因素,因此该方法的准确性也存在一定的局限。

3. 预处理法预处理法是一种非常有效的车牌图像倾斜矫正方法。

该方法的基本思路是,通过图像预处理算法对车牌图像进行处理,得到车牌上的字符或特征信息,进而计算出车牌的倾斜角度。

最后对车牌进行旋转矫正。

相比于直线检测法和边缘检测法,预处理法更加准确有效。

但是,该方法需要对车牌图像进行预处理,因此算法复杂度较高。

4. 模板匹配法模板匹配法是一种基于模板匹配的车牌图像倾斜矫正方法。

该方法的基本思路是,利用车牌模板进行匹配,找出车牌上的特征区域,进而计算出车牌的倾斜角度。

最后对车牌进行旋转矫正。

由于车牌模板具有良好的特征性,因此该方法对车牌图像的倾斜角度矫正具有很好的效果。

但是,由于模板匹配过程中需要对车牌模板进行匹配,因此算法复杂度较高。

同时,该方法也需要预先准备车牌模板,对通用性存在一定的限制。

结论以上介绍了几种常见的车牌图像倾斜角度矫正方法,每种算法都各有优缺点,应根据实际情况选择合适的算法。

车牌识别中的倾斜车牌校正算法

车牌识别中的倾斜车牌校正算法

整数坐标之间的一个 小数坐标 , 如图 2 所示。要想得到校正后 图像像 - 2 元(, 的灰度值 , xy 2 就必须 对校 正前图像 中的坐标 xY进 行图像插值 运 ) 算, 图像插值是用(, 周围坐标点 的灰度值通过某种计算得到坐标 ( Y xy D x ) 的近似灰度值 , 将该近似灰度 值作为校正后 图像 中像元 xy 的灰 度 并 :2 ,)
2相 关 技 术 介 绍 .

口 XC S ̄+ysn O i
21 a n 算法 .C n y 图像 中的背景像 素和 目标像素表现为灰度值过 渡比较平缓 ,像素 之 间的灰度值 差别很 小 , 如果像 素之间存在 了阶跃变化 , 则该像素值在 外 表现为图像 的边缘像 素。像素之间 的这种变化 可以抽 象成数学理论 中的导数 运算 , 根据计算像 素之间的导数判定该像 素点 是否为边缘像 素点。 判定边缘可通过计算该像素 的边缘强度与边缘方 向。 同学者针 不 对 不同的实际运 用需求 , 出了不 同的算子用 于提取 图像 中的边缘 。 提 其 中最著名 而且运用较 多的是 C n y a n 算子。 a n 算子检测边缘的方法是 Cn y
图 21 .直线表示图 2 逐个检测图像 的 目 ) 标像素 ( Y ( 景点 )为每一个 0 x ) 前 , 的离散值 0 计算 r xcs0y i0, o o l 0+ ln o在相应 的累加器 Ar ) = o s (e上加 1 , 。 3 在累加器 a r ) ) (0 , 中找到最大值 A ro , r (,)则 h 代表 了图像 中最 长 hh , 0 的一个直线。然后把该 直线转化为直角坐标 的直线 。 2 3仿射变换 获取图像的倾斜角度后 ,接着通过仿射变换把图像旋转一定 的角 度对车牌图像 进一步校正。 一般来说 , 车牌 图像旋转后还需要 进行插值 处理 , 因为车牌图像旋转后 不一定 能在原始图像 中找到相应的点。 于 对 校正后新图像中的每一个像元 x,1根据空间变换 函数 , 以得 到它 在 2 v, 可 校正前图像上的坐标 位置(,. 这个坐标往往不是整数 , xy 。 。) 而是位于四个

常用的车牌识别算法

常用的车牌识别算法

常用的车牌识别算法包括以下几种:
1. 车牌定位算法:用于确定车辆图像中车牌的位置。

这种算法通常会使用图像处理技术,如梯度信息投影统计、小波变换、车牌区域扫描连线算法等,以识别图像中的车牌区域。

2. 字符分割算法:在车牌定位后,需要将车牌中的字符进行分割。

这种算法通常会使用图像处理技术和机器学习算法,如基于深度学习的字符分割算法,以准确地将各个字符分割开来。

3. 字符识别算法:用于识别分割后的字符。

这种算法通常会使用机器学习算法,如卷积神经网络(CNN)或循环神经网络(RNN),以对字符进行分类和识别。

4. 神经网络识别算法:大规模神经网络识别算法是一种深度学习算法,它能够同时处理车牌定位和字符识别两个任务,具有更高的准确性和鲁棒性。

5. 启发式车牌定位算法:综合利用了图像处理技术和机器学习算法,以提高车牌定位的准确性。

这种算法通常会使用一些特征选择方法,如SVM、HOG等,以将车牌区域和非车牌区域进行区分。

6. 角度偏差和光照波动控制算法:在车牌定位和字符识别过程中,车辆的角度偏差和光照波动会影响算法的准确性。

这种算法通常会使用一些图像处理技术,如滤波、归一化等,以减小这些因素的影响。

这些算法在车牌识别过程中相互配合,以实现准确的车牌识别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汽车牌照图像倾角矫正方法研究首先我们对汽车牌照图像进行边缘检测,找出图像与背景的交线,然后就可以通过一定算法确定图像的倾斜角度了。

这里采用了Sobel水平方向算子对图像中的水平边缘直线进行检测[2]。

检测出图像中的直线后,我们要对其倾角进行计算,这里选用了Hough变换法、Radon变换法、最小二乘法和两点法四种方法来计算直线的倾角,下面将具体研究这四种方法并对其优缺点做出比较。

1 Hough变换法利用Hough变换法提取直线是一种变换域提取直线的方法,它把直线上的坐标变换到过点的直线的系数域,巧妙的利用了共线和直线相交的关系。

它的原理很简单:假设有一条与原点距离为s,方向角为θ的一条直线,如图3.1所示:图1 一条与原点距离为s,方向角为θ的直线直线上的每一点都满足方程:θsinθ=(3.1)s+xcos y证明过程如下:图2 坐标变换原理图如图3.2所示:θcosθ=(3.2)oc=obcos xθsinθ=(3.3)nc=nbsin y所以:θθsin=s++=(3.4)cos yxncocm为直线l上任意一点nd--y-=(3.5)=()1y,1xxmd因为:θsinθdf-==(3.6)ndy)1(sin yθcosθ-==(3.7)df-md(cos xx)1所以:θθcosθθyy+x=--(3.8)sin x1cossin1所以:θsinθθθxs+==(3.9)+ycos y1cos1sinx所以直线上任意一点都满足θθsin=(3.10)s+cos yx图3 x-y 平面一点可以对应多个 s,θ值由图3.3可以看出点(x1,y1)即属于直线L1又属于直线L2,且满足:1sin 11cos 11θθy x s += (3.11) 2sin 12cos 12θθy x s += (3.12)所以,x-o-y 平面上的一点(x1,y1)对应于s-o-θ平面上的一条曲线。

由于一条直线上的点都满足θθsin cos y x s +=,所以x-o-y 平面上处在一条直线上的点经过变换在S-O-θ平面上所得的曲线相交于一点。

如下图所示:图4 Hough 变换前后对比图因此可以把x-o-y 平面内直线的问题转化为S-O-θ平面内点的问题[3]。

用Hough 变换检测汽车牌照图像中直线的具体步骤为:(1)对图像进行边缘检测,这里选用了Sobel算子检测图像中水平方向的直线。

图5 网格图(2)假设图像对应于x-o-y空间,定义一个S-o-θ(θ角的范围为1-180)空间,对图像中象素为1的每一个点进行计算(应用公式(3.10)),做出每一个象素为1的点的曲线,同时把S-θ平面分成等间隔(1×1)的小网格,这个小网格对应一个记数矩阵。

如图3.5所示,凡是曲线所经过的网格,对应的记数矩阵元素值加1,所以对原图像中的每一点进行计算以后记数矩阵元素的值等于共线的点数。

我们可以认为记数矩阵中元素的最大值对应原始图像中最长的直线。

(3)检测出记数矩阵的最大的元素所对应的列坐标θ,θ即为这条直线的法线与X 轴的夹角。

因此我们可以通过θ角来确定直线的倾斜角度,进而对图像进行矫正。

图6 倾角矫正前图像Hough变换法矫正图像程序实现如下:bw=edge(l,'sobel','horizontal');%检测图像边缘直线[m,n]=size(bw);%计算图像大小S=round(sqrt(m^2+n^2));%S可以取到的最大值ma=180;%θ角最大值r=zeros(md,ma);%产生初值为零的计数矩阵for i=1:mfor j=1:nif bw(i,j)==1for k=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;%对矩阵记数endendendend[m,n]=size(r);for i=1:mfor j=1:nif r(i,j)>r(1,1)r(1,1)=r(i,j);c=j;%把矩阵元素最大值所对应的列坐标送给c。

endendendif c<=90rot=-c; %确定旋转角度elserot=180-c;endpic=imrotate(l,rot,'crop'); %对图片进行旋转,矫正图像下面给出了Hough变换法对倾斜图像进行矫正后的图像:图7 Hough 变换法对图3.6矫正后图像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 ’轴的线积分,格式如下:⎰+∞∞-+-=')cos 'sin ',sin 'cos '()'(dy y x y x f x R θθθθθ (3.13)其中⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡y x y x θθθθcos sin sin cos '' (3.14)图8 矩形函数在水平垂直方向和沿θ角方向的投影Radon 变换与计算机视觉中的Hough变换很相似,我们可以利用Radon变换来检测图像中的直线的倾斜角度[4]。

利用Radon变换检测直线倾斜角度的具体步骤为:(1)用edge函数计算图像的边缘二值图像,检测出原始图像中的直线。

图9 边缘图(2)计算边缘图像的Radon变换,对每一个象素为1的点进行运算(0-179度方向上分别做投影)其命令格式如下:theta=0:179;[r,xp]=radon(bw1,theta);%计算边缘图像的Radon变换figure,image(theta,xp,r);%显示变换效果图(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:mfor j=1:nif r(1,1)<r(i,j)r(1,1)=r(i,j);c=j;endendend %检测Radon变换矩阵中的峰值所对应的列坐标rot=90-c;%确定旋转角度pic=imrotate(l1,rot,'crop');%对图像进行旋转矫正图10 矫正后所得图像3 线性回归法如果我们有一系列相互独立的点,其近似分布在一条直线附近,我们就可以通过一元线性回归法拟合这条直线。

图11 最小二乘原理图这条直线的一元线性回归模型为:εββ++=x y 10∞<=2D σε0=E ε (3.15)设上图中点的坐标分别是(x 1,y 1) , (x 2,y 2) , …… , (x n ,y n ) 。

用最小二乘算法来估计0β和1β。

则有:i i i x y εββ++=10 I = 1 , 2 , 3 , … ,n0=E i ε ,2D σε=i (3.16)用最小二乘算法来计算,找到准则函数,记为2110121,0)()(i ni ini ix yQ Q ∑∑==--===ββεββ (3.17)求Q 的最小值:0)(221100=---=∂∂∑=i ni i x y Qβββ (3.18)0)(221101=---=∂∂∑=i n i i i x y x Qβββ (3.19)由上式可得:xx xyL L =1β (3.20)xy 10ββ-= (3.21)其中:∑∑==-=-=ni i ni i xx x n x x x L 12221)( (3.22)∑∑==-=--=ni i i i n i i xy yx n y x y y x x L 11)()( (3.23)估计出了直线的斜率和截距,我们就可以估计出这条直线的方程了[5]。

将汽车牌照图像进行二值化,就可以得到其与背景的明显的交线,对于汽车牌照图像二值化的阈值完全可以取的高一点。

执行bw=im2bw(pic,0.3)我们可以得到下面的图像:图12 二值化后的汽车牌照图像从上图可以看出如果我们能够检测到图像上边缘的一系列的边界点,我们就可以通过最小二乘法拟合这条边界直线,从而确定图像的倾角。

具体方法如下:(1)找出边界直线上的点(每列第一次由黑变白的点,且这一列的下两点还是白的话就可以判为边界点[6]),将其行坐标存入数组a 即,列坐标存入数组b 。

(2)通过最小二乘法拟和这条边界直线,计算出其斜率L 。

(3)通过rot=atan (L ),计算直线的倾斜角度,然后对其矫正。

最小二乘法程序实现如下: [m,n]=size(l); bw=im2bw(l,0.3); %将图像二值化 t=1;s=1;for j=144:1: 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%检测边缘点c(t)=i;%边缘横坐标存入数组Cb1(s)=j;边缘纵坐标存入数组b1break;endendt=t+1;s=s+1;endx=0;y=0;x1=0;for i=1:length(c)x=x+c(i);x1=x1+c(i)^2;endfor i=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;for i=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');图13 用最小二乘法对图6矫正后图像4 两点法这种方法理论上非常简单,就是:如果我们知道直线上不同两点的坐标,我们就可以求得到这条直线的斜率,进而确定直线倾角。

相关文档
最新文档