图像分割与边缘检测
图像分割与边缘检测
图像分割在整个图像处理过程中的作用
一些概念:前景,背景
三大类方法
- 根据区域间灰度不连续搜寻区域之间的边界(奇异性检测,边缘连接,边界检测)
- 以像素性质的分布进行阈值处理(阈值处理)
- 直接搜寻区域进行分割(基于区域的分割)
奇异性检测
奇异性
图像的奇异性是指图像局部像素的平滑程度,一般情况下,图像的局部区域的像素值是光滑的只有在边界的部分图像的像素值是不光滑的,也就是说是奇异的。
奇异性主要有:点脉冲(遥感图像与卫星成像),线,边缘
- 点检测 就是用一个8邻域模版
- 线检测 一般而言有四个模版 水平,正向45度,垂直,反向45度,四个模版算子同时进行,然后取较大值属于的方向
- 边缘检测 (一阶导数与二阶导数)
- 梯度是图像对应二维函数的一阶导数,可以用第一,第二,以及无穷范数来衡量梯度的值,梯度的方向为图像的二维函数像素值变化率最大的方向
- 由于图像由离散的像素点构成,下面的算子用差分近似偏导数
- Roberts算子
- Sobel算子
- Prewitt算子
- LOG算子
- Canny算子
Roberts算子
然后,Roberts算子采用第一范数衡量梯度的幅度
Roberts算子对具有陡峭的低噪声图像效果比较好
Sobel算子
然后,Sobel算子采用无穷范数衡量梯度的幅度
Sobel算子对灰度渐变和噪声较多的图像处理的比较好
Prewitt算子
然后,Prewitt算子采用无穷范数衡量梯度的幅度
Prewitt算子对灰度渐变和噪声较多的图像处理的比较好
Canny算子
Canny算子的梯度是用高斯滤波器的导数计算的,检测边缘的方法是寻找图像梯度的局部极大值。
Canny算法步骤如下:
① 用高斯滤波器平滑图像;
② 计算滤波后图像梯度的幅值和方向;
③ 对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值点置零以得到细化的边缘;
④ 用双阈值算法检测和连续边缘,使用两个阈值T1和T2(T1>T2),T1用来找到每条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。其中T1代表大于该值的肯定是边缘,T2表示小于该值的肯定不是边缘。
非极大值抑制:
沿幅角方向检测模值的极大值点,即边缘点,遍历8个方向图像像素,把每个像素偏导值与相邻像素的模值比较,取其MAX值为边缘点,置像素灰度值为0.
双阈值检测:
由于单阈值处理时,合适的阈值选择较困难,常常需要采用反复试验,因此采用双阈值检测算法。
对经过非极大值抑制后的图像作用两个阈值th1,th2,th1=0.4th2,两个阈值作用后得到两个图像1、2,较大阈值检测出的图像2去除了大部分噪声,但是也损失了有用的边缘信息。
较小阈值检测得到的图像1则保留着较多的边缘信息,以此为基础,补充图像2中的丢失的信息,连接图像边缘。
连接图像边缘
For Example
基于二阶导数的边缘检测
图像灰度二阶导数的过零点对应边缘点
Laplace算子
拉普拉斯(Laplace)算子是离散二维二阶导数的最简单形式
Marr算子
拉普拉斯-高斯边缘检测算子 LOG:Laplacian Of Gaussian;Marr算子
基本思想:由于拉普拉斯算子对于噪声比较敏感,因此采用先用高斯函数对图像滤波,然后对滤波后的图像进行拉普拉斯运算,算得的值等于零的点认为是边界点。(Marr和Hildreth 1980)
在实际使用中常常对LOG算子进行简化,使用差分高斯函数DOG代替LOG
各种边缘检测算子的比较
算子 | 特点 |
---|---|
Roberts算子 | 利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声能力。该算子用于具有陡峭边缘且噪声低的图像效果较好。 |
Sobel算子和Prewitt算子 | 都是对图像先作加权平滑处理,然后再作微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度 |
Laplacian算子 | 是不依赖于边缘方向的二阶微分算子,对图像中的阶跃型边缘点定位准确,该算子对噪声非常敏感,它使噪声成分得到加强,这两个特性使得该算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘,同时抗噪声能力比较差 |
LOG算子 | 该算子克服了Laplacian算子抗噪声能力比较差的缺点,但在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到 |
边缘连接和边界检测
why?为什么要进行边缘连接
自然物体是实体,边缘必须连续切封闭,由于噪声、照明等产生边缘间断,使得一组像素难以完整形成边缘,因此,在边缘检测算法后,使用连接过程将间断的边缘像素组合成完整边缘
- 局部处理
分析图像中每个边缘点(x,y)的一个邻域内的像素,根据某种准则将相似点进行连接,由满足该准则的像素连接形成边缘,如何确定边缘像素的相似性,边缘像素梯度算子的响应强度,边缘像素梯度算子的方向(Canny 算子) - 整体处理之霍夫变换
对于边界上的n个点的点集,找出共线的点集和直线方程。
阈值处理
基本思想
基本全局阈值
计算基本全局阈值算法
- 选择一个T的初始估计值
- 用T分割图像,生成两组像素:G1由所有灰度值大 于T的像素组成,而G2由所有灰度值小于或等于T的 像素组成
- 对区域G1和G2中的所有像素计算平均灰度值µ1和µ2
- 计算新的阈值 T = (µ1+µ2)/2
- 重复步骤2到4,直到逐次迭代所得的T值之差小于 事先定义的参数T0
基本自适应阈值
单一全局阈值存在的问题:
不均匀亮度图像无法有效分割
将图像进一步细分为子图像,并对不同的子图 像使用不同的阈值处理
解决的关键问题:如何将图像进行细分和如何为得到的子图像估计阈值
自适应阈值:取决于像素在子图像中的位置
最佳全局和自适应阈值
它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别变小。因此,使类间方差最大的分割意味着错分概率最小
通过边界特性选择阈值
通过边界特性选择阈值
基本思想:
如果直方图的各个波峰很高、很窄、对称,且被很深的波谷分开时,有利于选择阈值
为了改善直方图的波峰形状,我们只把区域边缘的像素计算进直方图,而不考虑区域中间的像素
用微分算子,处理图像,使图像只剩下边界中心两边的值
这种方法有以下优点:
1)在前景和背景所占区域面积差别很大时, 不会造成一个灰度级的波峰过高,而另一 个过低
2)边缘上的点在区域内还是区域外的概率是相等的,因此可以增加波峰的对称性
3)基于梯度和拉普拉斯算子选择的像素,可以增加波峰的相对高度(对比度较大)
基于不同变量的阈值
RGB
基于区域的分割
区域生长的基本概念
区域生长的基本思想是将具有相似属性的像素集合起来构成区域。
具体先对每个需要分割的区域找一个种子像素作为生长的起始点,然后将种子像素周期邻域中与种子像素有相同或相似性质的像素合并到种子像素所在的区域。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素。
四叉树分解的分割法
将方形的原始图像分成四个相同大小的方块,判断每个方块是否满足一致性标准;如果满足就不再继续分裂,如果不满足就再细化成四个方块,并对细分得到的方块继续应用一致性经验。
这个迭代重复的过程直到所有的方块都满足一致性标准才停止。
最后,四叉树分解的结果可能包含多种不同尺寸的方块。
用平均灰度分割
基于PDE的图像分割
偏微分方法(Partial Differential Equations, PDE)的图像分割
优点:
1)直接对图像进行分析,是一种连续的模型,连续的微分算子代替了原始的离散滤波,更易于实现网格的划分和局部非线性分析。
2)分割提取的边缘是闭合的连续曲线,很好的避免传统方法先检查出边缘点在进行边缘连接的过程。
3)能在模型中引入图像的曲率、梯度等几何信息,同时还能够融入图像的先验知识和形状信息来指导模型分割