基于opencv的车型识别系统毕业设计内容摘要:

Sobel是边缘检测的算法之一使用扩展 Sobel算子计算一阶二 阶三阶或混合图像差分 在 OpenCV 中运用 cvsobel 函数如下为运用 cvsobel 的函数算法函数程序 void cvSobel const CvArr src 输入图像 CvArrdst 输出图像 Int xorderX 方向上的差分阶数 Int aperture– size 3 函数 cvSobel 通过对图像用相应的内核进行卷积操作来计算图像的差分 31 31 由于 Sobel 算子结合了 Gaussian 平滑和微分所以其结果或多或少的对噪声有一 定的鲁棒性通常情况函数调用用如下参数 xorder 1yorder 0aperture_size 3 或 xorder 0yorder 1aperture_size 3 来计算一阶图像差分 Sobel 算子采有如表的 31 的模板 表 31 Sobel 算子水平模板 1 2 1 0 0 0 1 2 1 表 32 Sobel算子垂直模板 1 0 1 2 0 2 1 0 1 上面图表为对图像像素处理的模板矩阵每个图像像素点都与这个两个模板作卷积第一个模板用于检测水平边缘第二个模板用于检测竖直边缘两个卷积 结果的最大值即为该点的输出值 Sobel 边缘检测算子对灰度渐变和噪声较大的图像处理的比较好 LOG 边缘检测 1LOG 边缘检测的一般算法 LOG 算子提取车辆图像边缘的方法是一种比较简便的处理方法与其它方法比较优于 Roberts算子和 Sobel算子的方法边缘比较完整位置比较准确与小波分析的方法比较虽然获得的图像质量略有不足但其算法简单处理速度快在流量较大路口的车辆检测系统中有较高实用价值 LOG算法是一种 2阶边缘检测方法它通过寻找图像灰度值的中二阶微分中的过零点 Zero Crossing 来检测边缘点因为灰度 缓变形成的边缘经过微分算分算子峰值两侧符号相反而原先的极值点对应二阶微分中的零点为了消除噪声影响必须用高斯函数对图像进行滤波在对滤波后的的图像求二阶导数即按照下式计算 32 其中以为图像 G XY 为高斯函数上述两个处理步骤可以合成一个算子经运算可得 33 公式中称为拉普拉斯高斯算子经运算可得 34 是关于原点对称的函数其主瓣宽度为 G xy 比较符合人的视觉特 性 LoG 算法能较好地反映了视觉模型 2LoG 算法过零检测 对 G xy 简化得到下公式 35 一般矿取值较大时趋于平滑图像 fir 较小时则趋于脱化图像 事实上检测边界就是寻找的过零点可用以下几种参数表示过零点处灰度变化的速率 1 过零点处的斜率 2 二次微分峰峰差值 3 二次微分峰峰间曲线下面积绝对值之和 边界点方向信息可由梯度算子给出为减小计算量在实用中可用高斯差分算子 DOG 36 34 区域分割 图像中的区域是指一 个相互连通的具有一致的有意义属性的像元素区域分割就是从全图出发按有意义属性一致的准则决定每个像素的归属区域区域分割是图像处理中的一项基本内容也是图像理解中关键的一步区域分割将原始图像转化为更抽象更紧凑的形式使得更高层的图像分析和理解成为可能 区域分割算法大致可分为两类一是基于图像的灰度统计特征通过某一约束函数选取合理的闽值进行区域分割这类算法典型的有直方图分析法最佳嫡自动门限法最小 误差法和类间方差法二是基于图像的局部灰度梯度变化特征如边缘检测即先找出目标的边界通过某一判别标准识别出目标边界用边界来表示目标然后进行聚类将目标从图像中识别出来这类方法包括自适应阂值法模糊 C 均值法本文根据车辆图像的特点和实际需要采用上述第一类基于图像的灰度统计特征的闽值分割法对图像进行区域分割下面简单介绍本文运用的直方图分析法 35 图像的轮廓提取 识别车型需要提取汽车外部轮廓特征对二值图像进行轮廓跟踪得到轮廓曲线所以首先要对上述二值化图像进行轮廓跟踪轮廓跟踪的基本方法是先根据某些严格的探测准则找出目标物体 轮廓上的像素再根据这些像素的某些特征用一定的跟踪准则找出目标物体上的其它像素点.传统的串行跟踪算法是从上到下从左到右扫描全图找到所有以 0 黑像素 为邻点的 255 白像素 按定义这些值为255 的点一定是边界点这种算法要对每个边界像素周围的八个邻点进行判断计算量较大.另一种称为虫随法的搜索轮廓的思想是这样的从白边缘向黑色像素区走当穿过黑像素时左转并走向下一个像素同时始终遵循遇黑左转遇白右转的原则一直到回到原始出发点为止这样就可以得到目标物体的轮廓但这种方法所得到的轮廓与初始点有关 下面介绍的一种轮廓算法由两部分 组成一个是计算轮廓方向序列的方法称为 T 算法另一是计算轮廓起始点方法称为 IP Initial. Point 算法轮廓算法的步骤是由这两个算法依次交叉进行即第一个轮廓起始点找到后进行第一个轮廓方向序列的计算算完后再寻找第二个轮廓起始点接着计算第二个轮廓方向序列如此依次交叉的进行计算完图中所有轮廓为止 下面分别介绍一下轮廓方向序列及轮廓起始点算法 轮廓方向序列的计算 T 算法 轮廓方向序列是由轮廓起始点开始到轮廓上的第二点第三点直到最后一点再返回起始点为止由方向所组成的方向序列确定轮廓上一点走向下一点的方向是用最先左看规则即从进入轮廓点 如 A 点 的方向看去 如图 33 最先向左方向寻找若遇到灰度级和 A点相同的邻点则轮廓由 A点走向这一点若左看没有灰度级和 A 点相同的邻点再按向上看向右看向下看的顺序寻找直到找到有灰度级相同的点为止.将轮廓由 A 点移向该点若四个方向都没有表示这个轮廓只是由一个像素 孤立点 构成的 图 33 向右看图 轮廓起始点的寻找 IP 算法 为了寻找轮廓起始点 IP 我们使用顺序扫描搜索方法也就是从数字图像的左上角 第一行第一列 的像素开始按行从左到右按列从上到下逐点顺序扫描知道右小角最后一个像素为 止对扫描遇到的每一个像素进行判别是否为轮廓起点 IP如果判别每一像素是否为 IP 呢先来介绍一下扫描搜索比较表和起始点判别准则 ①扫描搜索比较表构成 CPL 1 仅每扫一行制一个表当然开始扫描前表是空的. 2 对每一行扫描从左到右逐点进行判别若遇到点标志为 A 将该点的灰度级值从表的右端依次填入表中若遇到点标志是 D将表中最靠近标志为 A的灰度级划去若遇到点标志是 D 或 I 表不变化即不填也不划去什么 3 每一行扫描完毕表也一定是空的因为轮廓总是封闭的轮廓通过某一行有向下的点 D 有向上的点 A 即 A 点数一定等于 D 点数 ②轮廓起始点判断准则 在扫描搜索过程中凡符合下列两个条件的就判为轮廓起始点 IP 1 标志是 I 即不是已确认过的轮廓上的点 . 2 它的灰度级值不等于扫描搜索表中最靠近的标记为 A 的点的灰度级值按照这两种准则就可以判断轮廓起始点.这里注意的就是一副数字图像的左上角的点 第一行第一列 总认为是第一轮廓起始点这是不难理解的二值化图像轮廓提取还可以采用数学形态学的方法设图像为 A 结构元素为 B 图像边缘为 即图像 A与 A被 B腐蚀的结果的差为图像的边缘本系统中采用如下跟踪准则对差值按照从左到右从下到上的顺序搜索找到的第一 个白色点一定是最左下方的边界点以这个边界点起始假设已经沿顺时针方向环绕整个图像一圈找到了所有的边界点由于边界是连续的所以每个边界点都可以用这个边界点对前个边界点所张的角度来表示.所以从第一个边界点开始定义初始的搜索方向为沿左上方如果左上方的点是白色的则为边界点否则搜索方向顺时针旋转 45 度这样一直到找到另一个白色点为止然后把这个白色点作为新的边界点在当前搜索方向的基础上逆时针旋转 90 度继续用同样的方法搜索下一个自点直到返回最初的边界点为止 36 车辆的特征提取 提取特征时我们必须考虑两个基本问题一是特征能够较 容易地从图像中提取其二是所选取的特征必须有利于分类也即对分类有较大的贡献从外观上看最能够区分不同车型的是车辆的形状因此形状是区分车型的重要依据 7 分类识别 对于任何一个模式分类器除了希望它有尽可能高的识别率外还希望能比较准确地估计它的分类结果的准确性即置信度置信度的主要用途有 1 为拒识提供依据 在很多应用场合下我们不仅希望识别率尽可能高还希望误识率低在一定的分类器下这只能通过拒识部分样本实现这样就需要决定拒识哪一部分样本如果拒识的样本总是识别置信度最低的样本系统的误识率就会在拒识率一定的情况下获得最大幅度 的下降 2 为多方案集成提供根据现在多方案集成是模式识别的一个重要趋势人们已不再满足于简单的表决而希望能充分利用单个分类器的各种信息 其中每个分类器的置信度是一种重要信息其意义是明显的当多个分类器的结果不同时应当选择置信度比较大的分类器的结果至少应给予较大的权重鉴于置信度的重要地位基本上各种应用系统都。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。