
2014年第4期,工业仪器仪表与自动化·113·基于MATLAB的改进型Canny算子的图像边缘检测研究陈若竹,薛彪(兰州工业大学a. 甘肃省土木工程防灾减灾重点实验室; b. 电气工程与信息工程学院,兰州730050)摘要: 边缘检测是图像处理的重要组成部分. 为了有效地提取目标边缘,提出了一种基于canny算法的改进算法,该算法主要从两个方面进行了改进: 使用中值滤波器代替高斯滤波器去除图像噪声,并迭代计算高和低双精度值. 实验仿真结果很好地验证了改进算法的性能: 在保留边缘信息的同时,很好地抑制了噪声干扰,可以提高图像的边缘检测效果. 关键词: 边缘检测精明的运算符中值滤波;迭代算法9参考书目代码: 基于MATLAB改进的基于运算符的图像检测研究文章编号: 1000 — 0682(2014)04 — 0l 13 — 04 CHENR uozhu,薛必a (a. 甘肃省民政事业单位防灾减灾重点实验室; b. 兰州工业大学电气与信息工程学院,兰州730050)A摘要: 粪便检测是一种图像测量的重要部分. 为了有效地标出目标边缘,提出了一种基于坎尼算法的改进算法. 在两个主要方面,算法得到了改进. 采用中值滤波器代替Canny算术中的高斯滤波器,以去除噪声并通过迭代算法计算最佳的高和低双阈值. 实验结果表明,该算法的优点是噪声小,可以在图像管理领域中保持细节,并可以更好地检测图像边缘,提高图像边缘检测率. 资料: 边缘检测; anny运算符;中位数滤波迭代算法0简介边缘检测技术在图像处理和计算机视觉中起着重要作用. 它在各个领域中的使用越来越多,并且起着越来越大的作用.
传统边缘检测算子是局部窗口梯度算子,例如Roberts,Sobel,Prewitt,Kirsch和Laplacian. 由于它们对噪声非常敏感,因此它们在图像的实际,山西人,高级工程师,硕士生导师,主要研究方向是智能控制理论与应用,模式识别. 高斯函数的一阶导数. 但是,在使用过程中,发现Canny算法使用高斯函数作为过滤器,这很容易导致原始图像过于平滑并丢失边缘信息. 因此,本文提出了一种基于Canny算子的改进算法. 实验证明,采用中值滤波代替高斯滤波的新算法可以有效提高边缘提取的精度.
另一个问题是,传统的Canny操作员会根据经验手动设置边缘提取的高低阈值. 对图像执行边缘检测时,会产生伪边缘,并会附加更多的噪点. 为了更好地抑制噪声并正确选择边缘检测阈值,人们提出了各种方法来找到梯度差直方图中合适的过零位置作为高阈值,然后将该高阈值乘以比例因子(例如0 4),作为下限阈值;该图像被分为几个子图像,并且针对不同的图像选择具有不同阈值的动态阈值方法. 因此,基于Canny算子,本文使用迭代算法来找到最佳分割阈值. ·114·工业仪器仪表和自动化,2014年第4期1传统的Canny边缘检测算法Canny运算符多阶段边缘检测运算符,其实现主要包括四个部分: 图像平滑,计算图像的梯度和方向,非最大抑制梯度,并采用双阈值方法检测与边缘的连接. 1. 1高斯平滑图像在Canny算法执行图像处理之前,必须先对原始图像进行平滑处理以去除噪声,即用高斯平滑滤波器对图像进行卷积以消除噪声.
Canny algorithm_ 6是定位精度和信噪比乘积的最佳逼近算子. 该算法需要二维高斯函数,该函数通过对导数进行排序然后对图像进行平滑来获得. 高斯函数为: G exp(其梯度向量为: VG = [OG / O是具有过滤,增强和检测的类型)(1)vx 1(2)通过分解方法将VG的两个过滤模板除以两个一维行和列过滤器,它们的表达式为: exp(一嘉)唧(一)唧(一)exp(一番)将这两个一维过滤器分别与图像f(,Y)卷积,得到输出图像(,, Y)和Ex()=嚣张工厂()(3)(4)(5),(,,),)= oacv; ·E x(,)(6)是一个常数,或者是高斯滤波器的分布参数,它确定高斯滤波器的宽度并控制平滑度. 对于或较小的滤波器,定位精度高,但信噪比低; 2计算梯度的大小和方向梯度的计算通常使用偏导数方法. Canny运算符使用2 X 2邻域的一阶偏导数有限差分来计算平滑图像I(x,Y)的梯度幅度. 值i(x,Y)和梯度方向H(,Y)为: 反之越大.

M(,y)=√(,y)+ k; (,y)(7)(8)天(,y)= arctan [y(,y)/ k(= [5.,y)]]: [第二次演示],0 5 5]其中: 最后一个和第七个分别是原始图像,(,Y)是滤镜分别作用于行和列的结果. 1. 3非最大梯度抑制. 如果像素点(,)梯度幅度M(,Y)不小于沿着梯度方向IV(,Y)的两个相邻像素点的梯度幅度,则可以确定该点. 可能是优势点. 1. 4用双阈值法检测和边缘连接使用梯度幅度处理后的高梯度日和低阈值将梯度小于阈值的像素的灰度值分配为0,以分割并获得2个阈值边缘图像H(i,)和L(i,),连接图像H(i√)中的边缘轮廓,当连接到端点时,在L(i)中寻找弱边缘点canny算子边缘检测 matlab,并填充图像H(i ,J-). 可以看出,确定高低阈值是Canny运算符的关键. 以及经过非最大抑制2后的改进的Canny边缘检测算法. 1用中值滤波代替高斯滤波去噪算法中值滤波是一种非线性信号处理技术. 它基于分类统计理论,可以有效抑制噪声.
具体的实现过程如下: 根据灰度值对邻域中的像素值进行排序,然后使用序列的中间像素值作为中间输出值,将其与像素的灰度值进行比较周围的像素. 差异较大的像素值将更改为接近周围像素的值,从而可以消除噪点. 详细的操作步骤如下: 首先,选择一个邻居. 邻居必须以某个像素为中心. 通常,选择3×3、5×5正方形的邻域,然后根据灰度值选择所选邻域中的每个像素. 按大小排序. 可能希望将其顺序设置为: ≤2≤≤≤1 l Y = Med {l,2,3,⋯,} =·,这是一个奇数;厶1''Y = Med {1,2,3 ,. . . ,} =一个(两个·— +两个1. 一个·),n是偶数. 第二,将序列后的中间值y用作中心点的新像素灰度值. 实际上,窗口是附近的另一个名称. 使窗口按照所选图像中的规则移动,然后使用中值滤波器实现图像平滑的目的.

的优势
中值滤波器是它可以克服线性滤波器(例如高斯滤波器)引起的图像模糊,并可以在保持良好的边缘特性的同时有效消除脉冲噪声,这在[9]中给出. 严格的实验证明. 2. 2最佳阈值分割迭代阈值分割是先将图像的灰度值划分为不同的级别,然后使用设置灰度间隔的方法来确定要分割的图像的边界. . 假设小于设置阈值的点构成目标,大于设置阈值的点构成背景,则可以区分背景和目标. 阈值的选择通常应根据该阈值进行划分. 目标和背景在错误的分割图像中像素最少. 如果正确选择阈值,不仅可以降低噪声,而且抑制伪边缘具有更好的效果. 如果将阈值设置得太高,则可能会导致边缘开裂;如果将阈值设置得太低,则提取的边缘上可能会出现过多的假边缘,并且可能还会提取噪声作为边缘. 阈值的迭代选择的思想是: 首先选择一个近似阈值作为估计值的初始值,然后执行图像分割以生成子图像,然后根据特征选择一个新的阈值子图像,然后使用新的阈值分割图像. 经过一定数量的循环后,将未正确分割的图像像素的数量降至最低.

通常,图像的灰度值为256级,代表阈值. 算法步骤如下: 1)令初始阈值=(Z + Z i)/ 2,其中z和zmi分别代表图像中的最大值和最小值. 灰度值; 2)根据阈值将图像分为前景和背景,获得两者的平均灰度值z. 并且: i√)×Ⅳ(,)— —Ⅳ(z): (9),/,,),(i,j
3×3邻域和4邻域的通用梯度公式为: 计算方向的偏导数i是图像上(,,)的灰度值,N(i,)为(i ,)+ 1 =(Z. + Z6)/ 2; + = T,则获得的值为阈值,否则转到2)P(icanny算子边缘检测 matlab,)= G(i,+ 1)-G(i,-1)作为图像分割(11)计算偏导数py (i,)在Y方向上= G(i +1√)-G(i-1 ,,)此方法未考虑邻域中像素的对角线方向,并且不具有45. 旋转不变性也就是说,在边缘处偏向45. 和135. 当方向改变时,边缘梯度的幅度将改变到一定程度. 因此,[1O]在3×3附近将45加到梯度公式中. 然后是135. 方向像素梯度计算. 计算45. 方向: (12)P45. (i,)= G(i-1,+ 1)-G(i + 1,_,-1)(13)计算135.侧导板数量: P1 3 5.(i,J.)= G( i + 1,+ 1)-G(i-1,-1)(14)求水平方向上的差: Po.
(i√)= P +(p4 5. + P1 3 5.)/ 2最后找到垂直差: Pg o. (i√)= Py +(p4 5. + P1 3 5.)/ 2根据文献[1O],目标是45. 或135. 旋转变量的缺点是使用以下公式来计算渐变. (15)(16)po o)= +(. + Pl ,.)(17)p: +(. + Pl ,.)(18)使用公式(17)和(18)计算梯度幅度. 可以提高边缘定位精度,并且可以抑制噪声. 改进的方法可以提高梯度计算的鲁棒性,同时减少噪声干扰. 3仿真测试结果与分析为了验证本文算法的有效性,在Matlab2010b环境下对图像进行了实验. 图1中的原始256×256 lina图像,图1中具有5%胡椒粉和盐噪声的lina图像,图1中具有1%高斯噪声的图像被边缘检测. 检测过程如图1所示. l读取图像; l中值滤波器; l最佳阈值分割迭代. Can〜Canny运算符提取边缘,输出提取边缘. 图1提取边缘的流程. 图1中的虚线框是本文的改进部分. 使用中值.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154194-1.html
广东也吃老鼠