江西做网站找谁,微信学校网站模板,在线设计软件,哈尔滨建设工程管理工资多少图像边缘是图像的重要特征#xff0c;是图像中特性#xff08;如像素灰度、纹理等#xff09;分布的不连续处#xff0c;图像周围特性有阶跃变化或屋脊状变化的那些像素集合。图像的边缘部分集中了图像的大部分信息#xff0c;一幅图像的边缘结构与特点往往是决定图像特质… 图像边缘是图像的重要特征是图像中特性如像素灰度、纹理等分布的不连续处图像周围特性有阶跃变化或屋脊状变化的那些像素集合。图像的边缘部分集中了图像的大部分信息一幅图像的边缘结构与特点往往是决定图像特质的重要部分。图像边缘的另一个定义是指其周围像素灰度变化不连续的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间因此边缘是图像分割、图像理解及图像识别的重要特征。图像边缘检测主要用于增强图像中的轮廓边缘、细节以及灰度跳变部分形成完整的物体边界达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。目前为止最通用的方法是检测亮度值的不连续性用一阶和二阶导数检测的。1微分法微分法的目的是利用微分运算求信号的变化率加强高频分量的作用从而使轮廓清晰。遵循如下两个基本准则之一找到亮度的一阶导数在幅度上比指定的阈值大的地方找到亮度的二阶导数有零交叉的地方。2差分边缘检测方法利用像素灰度的一阶导数算子在灰度迅速变化处得到高值来进行奇异点的检测。它在某一点的值就代表该点的边缘强度通过对这些值设置阈值来进一步得到边缘图像。差分边缘检测方法是最原始、最基本的方法。但要求差分方向与边缘方向垂直这就需要对图像的不同方向一般为垂直方向、水平方向和对角线方向都进行差分运算增加了实际运算的繁琐性目前很少采用。3Roberts边缘检测算子Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理采用对角线方向相邻两像素之差然后计算出Roberts的梯度幅度值.Roberts检测器较为简单但具有一些功能上的限制例如它是非对称的而且不能检测诸如45°倍数的边缘。然而它还是经常用于硬件实现中因为它既简单又快速。4Sobel边缘检测算子对数字图像的每个像素考察它上下左右邻点灰度的加权差与之接近的邻点的权大。Sobel算子很容易在空间上实现边缘检测效果较好且受噪声的影响也较小。邻域增大抗噪性会更好但计算量也会增大得出的边缘也会相应变粗。Sobel算子会检测出许多伪边缘边缘定位精度不够高在精度要求不高时是一种较常用的边缘检测方法。5Prewitt边缘检测算子图像中的每个像素都用这两个核作卷积一个核对垂直边缘影响最大另一个核对水平边缘影响最大。两个卷积的绝对值的最大值作为该点的输出值。不能简单的将小于0的值处理为0这样会丢失信息。它比Sobel检测器在计算上要简单一些但比较容易产生一些噪声。6拉普拉斯边缘检测算子拉普拉斯边缘检测算子是一种二阶微分算子与其它边缘检测方法的不同之处在于该方法是一种各向同性的检测方法即其边缘的增强程度与边缘的方向无关从而可以满足不同走向的边缘锐化的要求。拉普拉斯算子自身很少被直接用作边缘检测因为二阶导数对噪声具有无法接受的敏感性它的幅度会产生双边缘而且它不能检测边缘的方向。然而当与其它边缘检测技术组合使用时拉普拉斯算子是一种有效的补充方法。例如虽然它的双边缘使得它不适合直接用于边缘检测但该性质可用于边缘定位。 在MATLAB中可以由edge函数实现各算子对边缘的检测其调用格式为 BW edge(I,’METHOD’)—自动选择阈值用指定的算子进行边缘检测 BW edge(I,’METHOD’,THRESH)—根据给定的阈值THRESH用指定的算子进行边缘检测忽略所有小于阈值的边缘。当THRESH为空时自动选择阈值 [BW, THRESH] edge(I,’METHOD’,…)—返回edge使用的阈值以确定哪个梯度值足够大到可以称为边缘点。 其中,I为输入图像。返回图像BW为与I同大的二值图像1表示边缘0表示非边缘。I是unit8型、unit16型或者是double型BW是unit8型。 METHOD使用检测算子的类型经常使用的有 sobel缺省值用导数的sobel近似值检测边缘那些梯度最大的点返回边缘。 roberts用导数的roberts近似值检测边缘那些梯度最大的点返回边缘。 prewitt用导数的prewitt近似值检测边缘那些梯度最大的点返回边缘。 LoG用LoG算子检测边缘。 Canny用Canny算子检测边缘。 THRESH指定的阈值所有不强于thresh的边缘都被忽略。 由edge函数实现各算子对图像的边缘检测 clear all; I imread(d:\office.bmp); Irgb2gray(I); BW1 edge(I,sobel); %利用Sobel算子进行边缘检测 BW2 edge(I,roberts); %利用roberts算子进行边缘检测 BW3 edge(I,prewitt); %利用prewitt算子进行边缘检测 BW4 edge(I,log); %利用log算子进行边缘检测 BW5 edge(I,canny); %利用canny算子进行边缘检测 subplot(2,3,1),imshow(I) subplot(2,3,2),imshow(BW1) subplot(2,3,3),imshow(BW2) subplot(2,3,4),imshow(BW3) subplot(2,3,5),imshow(BW4) subplot(2,3,6),imshow(BW5)