图像分割
学习目标
掌握图像分割基本方法闽值法,包括固定闽值,大津闯值法和自适应闽值
掌握图像边缘检测算子原理
掌握Canny边缘检测方法
学习连通区域分析,区域生长,分水岭等算法思想,能使用算法实现图像分割
一:
图像分割是指将图像分成若干具有相似性质的区域的过程,主要有基于闽值、基于区域、基于边缘、基于聚类、基于图论和基于深度学习的图像分割方法等。
图像分割分为语义分割和实例分割。
直方图双峰法,固定阈值法 ,
自适应阈值法:特定:自适应闻值会每次取图片的一小部分计算闹值相同,适用于明暗分布不均的图片。
迭代法阈值分割
1. 求出图象的最大灰度值和最小灰度值,分别记为ZMAX和ZMIN,令初始闽值
TO=(ZMAX+ZMIN)/2;
根据闽值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB ;
求出新闽值TK+1=(ZO+ZB)/2;
4.若TK==TK+1,则所得即为闽值;否则转2,迭代计算;
5 .使用计算后的闯值进行固定闯值分割。
Otsu大津法
最大类间方差法,1979年日本学者大津提出,是一种基于全局闯值的自适应方法。灰度特性:图像分为前景和背景。当取最佳闯值时,两部分之间的差别应该是最大的,衡量差别的标准为最大类间方差直方图有两个峰值的图像,大津法求得的T 近似等于两个峰值之间的低谷。
常见的一阶算子:Roberts交叉算子,Prewitt算子,Sobel算子
Canny算子是先平滑后求导数的方法。John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:
1 好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;
2 高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;
3 对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边
缘应该得到最大抑制。
- 连通区域算法
Two-Pass 算法
两遍扫描法(Two-Pass) ,正如其名,指的就是通过扫描两遍图像,将图像中存在的所有连通域找出并标记。
第一次扫描从左上角开始遍历像素点,找到第一个像素为255的点label=1;
当该像素的左邻像素和上邻像素为无效值时,给该像素置一个新的label值,label ++:
当该像素的左邻像素或者上邻像素有一个为有效值时将有效值像素的label赋给该像素的label值:
当该像素的左邻像素和上邻像素都为有效值时,选取其中较小的label值赋给该像素的label值
第二次扫描对每个点的label进行更新,更新为集合中最小的label
- 区域生长算法
区域生长是一种串行区域分割的图像分割方法。区域生长是指从某个像素出发,按照一定的准则,逐步加入邻近像素,当满足一定的条件时,区域生长终止
区域生长的好坏决定于
初始点 (种子点)的选取。
生长准则。
终止条件。
区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标的提取
- 分水岭算法
-
# Perform the distance transform algorithm dist_transform = cv2.distanceTransform(opening, cv2.DIST_L2, 5) # Normalize the distance image for range = {0.0, 1.0} cv2.normalize(dist_transform, dist_transform, 0, 1.0, cv2.NORM_MINMAX) # Finding sure foreground area ret, sure_fg = cv2.threshold(dist_transform, 0.5*dist_transform.max(), 255, 0) # Finding unknown region sure_fg = np.uint8(sure_fg) unknown = cv2.subtract(sure_bg,sure_fg)
距离变换可以得到每个像素点到前景的距离,根据这个距离可以判断该像素是前景还是背景。结合确定的背景区域,就可以标注出未知区域,为后续进一步处理分割预处理。
我们通过一个例子介绍了分水岭算法的整个过程,主要分为以下几步:
- 对图进行灰度化和二值化得到二值图像
- 通过膨胀得到确定的背景区域,通过距离转换得到确定的前景区域,剩余部分为不确定区域
- 对确定的前景图像进行连接组件处理,得到标记图像
- 根据标记图像对原图像应用分水岭算法,更新标记图像