![](https://csdnimg.cn/release/download_crawler_static/86690103/bg1.jpg)
一 实验原理
1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常
对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常
见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯
核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函
数对图像灰度矩阵的每一点进行加权求和
2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将
图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计
算梯度幅值来确定。
3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的
应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进
行取舍。实际工程中,常用的方法是通过阈值化方法来检测。
对图像进行高斯滤波
图像高斯滤波的实现可以用两个一维高斯核分别两次加权实现,也可以通过一个二维高
斯核一次卷积实现。
1)高斯核实现
上式为离散化的一维高斯函数,确定参数就可以得到一维核向量。
上式为离散化的二维高斯函数,确定参数就可以得到二维核向量。
注意 1:关于参数 Sigma 的取值详见上篇博文。
注意 2:在求的高斯核后,要对整个核进行归一化处理。
2)图像高斯滤波
对图像进行高斯滤波,听起来很玄乎,其实就是根据待滤波的像素点及其邻域点的灰度
值按照一定的参数规则进行加权平均。这样可以有效滤去理想图像中叠加的高频噪声。
通常滤波和边缘检测是矛盾的概念,抑制了噪声会使得图像边缘模糊,这回增加边缘定
位的不确定性;而如果要提高边缘检测的灵敏度,同时对噪声也提高了灵敏度。实际工程经
验表明,高斯函数确定的核可以在抗噪声干扰和边缘检测精确定位之间提供较好的折衷方案。
这就是所谓的高斯图像滤波,具体实现代码见下文。
2.3 用一阶偏导的有限差分来计算梯度的幅值和方向
关于图像灰度值得梯度可使用一阶有限差分来进行近似,这样就可以得图像在 x 和 y 方