边缘检测
边缘检测就是找到图像中边缘像素点的过程,从而生成一幅边缘图.一般来说,边缘检测分为3步:
1基于各种原理和方法找到潜在边缘点;
2选取阈值,生成二值边缘图;
3有些算法还要进行边缘细化,连接等后续处理
本示例介绍以下边缘检测方法:模板算子法,高斯算子,Canny算子,形态学检测,小波变换,金字塔分解
1模板算子:一般常用一阶导数(梯度)和二阶导数(拉普拉斯)来检测边缘.在一阶导数方法中,对图像中两个正交方向分别求偏导数,然后对这两个偏导数取不同的范数作为边缘强度,即可得到边缘图像.在这里,我们选取最学用的以2为模的范数形式,即对这两个偏导数求取平方和,再开平方.在实际计算中,求偏常常采用的是用小区域模板进行卷积来近似计算的.
经过拉普拉斯算子卷积以后的图像,还要判断出它的零交叉点,也就是边缘点,在这里,我们用四邻域法,通过比较符号和大小来判断零交叉点,从而得到边缘像素.
2 高斯算子:拉普拉斯算子对图像噪声比较敏感,为了减少噪声的影响,将高斯函数对图像行进行平滑卷积滤波处理,然后再运用拉普拉斯算子称为拉普拉斯-高斯(LoG)滤波器或算子,也可用差分高斯(DoG)算子对图像进行边缘检测.
3Canny算子:Canny边缘检测方法分为4步:
a:用高斯滤波空对空对图像进行平滑处理;
b:利用一阶偏导算子(如Roberts,Prewitt,Sobel等(推荐用Sobel))找到图像灰度沿着水平方向和垂直方向的偏层数,并求出梯度的幅值和方位.
c:对覆盖率幅值进行非极大值抑制,即找到局部梯度最大点.
d:用双阈值算法检测和连接边缘
4形态学边缘检测:采用平坦结构元素,形态学梯度法相当于一阶导数,形态学拉普拉斯法相当于二阶导数.
5小波变换:二维小波变换的两个分量分别正比于图像经平滑函数平滑后的沿水平和垂直方向的偏导数,因此二维小波变换矢量就是梯度.
6金字塔方法:首先进行高斯塔分解:
a:先对图像进行高斯卷积
b:求出两个图像之间的差
c:对卷积后的图像进行隔行隔列采样,以降低分辨率的作用
然后由高斯塔重构拉普拉斯塔:
a:内插放大图像
b:再进行高斯塔计算
示例结果:
示例程序:C#数字图像处理<八>