的背景上变换更有效,我们通过门限方法来决定一个值是否有效。
所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。
经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。
可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。
一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。
grdedgebw2canny用 canny 算子识别强度图像中的边界figureimshowgrdtitle图像边缘提取输出图像边缘 图 2.6 像边缘提取2.7 对得到图像作开操作进行滤波: 数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。
腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。
先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。
bg1imclosegrdstrelrectangle519取矩形框的闭运算figureimshowbg1title图像闭运算519输出闭运算的图像bg3imopenbg1strelrectangle519取矩形框的开运算figureimshowbg3title图像开运算519输出开运算的图像bg2imopenbg3strelrectangle191取矩形框的开运算figureimshowbg2title图像开运算191输出开运算的图像 图 2.7.1 闭运算的图像 图 2.7.2 开运算的图像 图 2.7.3 开运算的图像2.8 对二值图像进行区域提取,并计算区域特征参数。
进行区域特征参数比较,提取车牌区域:a.对图像每个区域进行标记,然后计算每个区域的图像特征参数:区域中心位置、最小包含矩形、面积。
Lnum bwlabelbg28标注二进制图像中已连接的部分Feastats imfeatureLbasic计算图像区域的特征尺寸AreaFeastats.Area区域面积BoundingBoxFeastats.BoundingBoxx y width height车牌的框架大小RGB label2rgbL spring k shuffle 标志图像向 RGB 图像转换figureimshowRGBtitle图像彩色标记输出框架的彩色图像 图 2.8.1 彩色图像b. 计算出包含所标记的区域的最小宽和高,并根据先验知识,比较谁的宽高比更接近实际车牌宽高比,将更接近的提取并显示出来。
计算矩形的宽度 计算矩形的高度 框架的宽度和高度的范围 车牌的开始列 车牌的开始行 计算车牌长宽比 获取车牌二值子 程序流程图 图 2.8.2 灰度子图和二值子图2.9 对水平投影进行峰谷分析: 对水平投影进行峰谷分析计算出车牌上边框、车牌字符投影、车牌下边框的波形峰上升点、峰下降点、峰宽、谷宽、峰间距离、峰中心位置参数。
histcol1sumsbw1 计算垂直投影histrowsumsbw1 计算水平投影figuresubplot211barhistcol1title垂直投影(含边框)输出垂直投影subplot212barhistrow title水平投影(含边框)输出水平投影 图 2.9.1 垂直投影和水平投影figuresubplot211barhistrow title水平投影(含边框)输出水平投影subplot212imshowsbw1title车牌二值子图输出二值图 对水平投影进行峰谷分析: 求水平投影的平均值 求水平投影的最小值 取阈值 计算谷宽度 计算峰距离 计算下降点 找到峰中心位置 图 2.9.2 水平投影和二值图 程序流程图2.10 计算车牌旋转角度:a.车牌倾斜的原因导致投影效果峰股谷不明显,在这里需要做车牌矫正处理。
这里采取的线性拟合的方法计算出车牌上边或下边图像值为 1 的点拟合直线与水平 X 轴的夹角。
标示出图像大小 求最大宽度为字符 检测上边 从顶边至第一个峰下降点扫描 从底边至最后一个峰的上升点扫描 找第一个为 1 的点 程序流程图 2线性拟合,计算与 x 夹角fresult fitxdataydatapoly1 poly1 表示一介拟合 Y p1xp2p1fresult.p1angleatanfresult.p1180/pi 弧度换为度,360/2pi pi3.14 3旋转车牌图象subcol imrotatesubcol1anglebilinearcrop 旋转车牌图象sbw imrotatesbw1anglebilinearcrop旋转图像figuresubplot211imshowsubcoltitle车牌灰度子图输出车牌旋转后的灰度图像标题显示车牌灰度子图subplot212imshowsbwtitle输出车牌旋转后的灰度图像title车牌旋转角: num2strangle度 Colorr显示车牌的旋转角度 图 2.10.1 旋转后的灰度图像和旋转角度 b.旋转车牌后重新计算车牌水平投影,去掉车牌水平边框,获取字符高度: histcol1sumsbw 计算垂直投影 histrowsumsbw 计算水平投影 figuresubplot211barhistcol1title垂直投影(旋转后) subplot212barhistrow title水平投影(旋转后) 图 2.10.2 垂直投影(旋转后)和水平投影(旋转后) figuresubplot211barhistrow title水平投影(旋转后) subplot212imshowsbwtitle车牌二值子图(旋转后)图 2.10.3 水平投影(旋转后)和车牌二值子图(旋转后) 2.11 去水平(上下)边框获取字符高度:a.通过以上水平投影、垂直投影分析计算,获得了车牌字符高度、字符顶行与尾行、字符宽度、每个字符的中心位置,为提取分割字符具备了条件。
maxhightmaxmarkrow2 findcfindmarkrow2maxhight rowtopmarkrowfindc rowbotmarkrowfindc1-markrow1findc1 sbw2sbwrowtop:rowbot: 子图为rowbot-rowtop1行 maxhightrowbot-rowtop1 字符高度rowbot-rowtop1 b.计算车牌垂直投影,去掉车牌垂直边框,获取车牌及字符平均宽度 histcolsumsbw2 计算垂直投影 figuresubplot211barhistcoltitle垂直投影(去水平边框后)输出车牌的垂直投影图像 subplot212imshowsbw2 输出垂直投影图像 title车牌字符高度: int2strmaxhightColorr输出车牌字符高度 对垂直投影进行峰谷分析 求垂直投影的平均值 求垂直投影的最小值 取阈值 计算字符上升点 计算谷宽度 计算字符距离 找到字符中心位置 图 2.11 垂直投影图像和车牌字符高度 程序流程图 c.计算车牌上每个字符中心位置,计算最大字符宽度 maxwidth l0 for k1:n1 markcol3kmarkcolk1-markcol1k1字符下降点 markcol4kmarkcol3k-markcolk 字符宽度(上升点至下降点) markcol5kmarkcol3k-doubleuint16markcol4k/2字符中心位置 end markcol6diffmarkcol5 字符中心距离(字符中心点至下一个字符中心点) maxsmaxmarkcol6 查找最大值,即为第二字符与第三字符中心距离 findmaxfindmarkcol6maxs markcol6findmax0 maxwidthmaxmarkcol6查找最大值,即为最大字符宽度 d.提取分割字符并变换为 22 行14 列标准子图 l1 m2n2sizesubcol figure for kfindmax-1:findmax5 cleftmarkcol5k-maxwidth/2 crightmarkcol5kmaxwidth/2-2 if cleftn2 crightn2 cleftn2-maxwidth end SegGraysbwrowtop:rowbotcleft:cright SegBw1sbwrowtop:rowbotcleft:cright SegBw2 imresizeSegBw122 14 变换为 22 行14 列标准子图 subplot2n1limshowSegGray if l7 title车牌字符宽度: int2strmaxwidthColorr end subplot2n1n1limshowSegBw2 fnamestrcatF:MATLABworksamimageint2strk.jpg 保 存 子图备选入样本库并建立样本库 imwriteSegBw2fnam
上一篇:
【精品】情景反应历年真题单项选择题汇编
下一篇:
法律专业开题报告范文