姓名:黎文渊 学号:17021210909
转载自:blog.csdn.net/xiahn1a/article/details/42141429,有删改
【嵌牛导读】:本文主要介绍图像边缘检测算法的基本原理和步骤
【嵌牛鼻子】:边缘检测,原理,步骤
【嵌牛提问】:图像的边缘如何进行表示,如何进行检测?
【嵌牛正文】:
1. 边缘的定义
边缘一般是指图像在某一局部强度剧烈变化的区域。强度变化一般有两种情况:
阶跃变化:灰度变化图像如下图1所示(横轴表示空间变化,纵轴表示灰度变化,虚线表示边缘),此图对应的是向亮渐变的过程。
屋顶变化:灰度变化图像如图2所示(横轴表示空间变化,纵轴表示灰度变化,虚线表示边缘),此图对应得实由暗到亮再变暗的过程。
图1
图2
边缘检测的任务:找到具有阶跃变化或者屋顶变化的像素点的集合。
既然边缘是灰度变化最剧烈的位置,最直观的想法就是求微分。
对于第一种情况:一阶微分的峰值为边缘点,二阶微分的零点为边缘点。
对于第二种情况:一阶微分的零点为边缘点,二阶微分的峰值为边缘点。
2. 边缘的求取表示
采用一阶微分的方法,我们定义一个梯度算子,梯度是一个向量,指出图像灰度变化最剧烈的方向。
梯度的大小和梯度的方向:
在实际的图像处理中,可以采用差分的方法来进行计算。但用差分的方法进行边缘检测必须使差分的方向和边缘的方向相垂直,这就需要对图像的不同方向分别进行差分运算,增加了运算量。一般可将边缘分为水平边缘、垂直边缘和对角线边缘。
3. 边缘的检测步骤
实现图像的边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵的灰度跃变位置,然后在图像中将这些位置的点连起来就构成了所谓的图像边缘(图像边缘在这里是一个统称,包括了二维图像上的边缘、角点、纹理等基元图)。
在实际情况中理想的灰度阶跃及其线条边缘图像是很少见到的,同时大多数的传感器件具有低频滤波特性,这样会使得阶跃边缘变为斜坡性边缘,看起来其中的强度变化不是瞬间的,而是跨越了一定的距离。这就使得在边缘检测中首先要进行的工作是滤波。
(1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和。
(2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度幅值来确定。
(3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进行取舍。实际工程中,常用的方法是通过阈值化方法来检测。
作者:高强0323
链接://www.greatytc.com/p/16d1907b4e9b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。