1.一种基于分水岭约束和边缘连接的图像分割算法,其特征在于包含以下步骤:步骤1:获取初始边缘图;将RGB彩色图像转换为灰度图像,并将其进行高斯滤波,使用并行加速之后的边缘检测算法得到初始边缘图;
步骤2:获取超分割边缘图;利用梯度幅值图,计算出分水岭算法所需的标记点,将高斯滤波之后的图像作为输入图像,使用基于标记的分水岭算法得到超分割效果图,并将其转换为单通道得到超分割边缘图;
步骤3:确定断裂边缘搜索初始点;将步骤1获得的初始边缘图进行断点检测,若断点间距离小于所设阈值,对其进行距离连接,然后进行伪断点去除操作,重新进行断点检测;利用步骤2获得超分割边缘图,将未处于超分割边缘上的断点根据局部连接的方法更新在超分割边缘上,将所有断点作为边缘搜索的初始点;将所有断点更新到超分割边缘上:首先判断当前断点是否处于超分割边缘上,若不在超分割边缘上,以断点为中心的八邻域,先判断与断点相邻边缘点的位置,然后找到与其关于该断点对称的三个像素点,其中梯度最大值点作为新的断点,直到将断点更新到超分割边缘上为止;
步骤4:搜索断裂边缘,获取边缘封闭轮廓;将步骤3获取的断点作为搜索的起始点,将步骤2获取的超分割边缘图作为搜索路径,采用局部梯度最大的方法进行搜索,将搜索断点搜索完毕,进行迭代搜索,最终达到终止条件得到完整的边缘轮廓,进而获得边缘分割的效果;
所述步骤4具体包括以下步骤:
步骤4.1:在超分割边缘上搜索断裂边缘,所有断点搜索完毕之后,对生成的边缘图再次进行断点检测,还将存在一部分新的断点;
步骤4.1在超分割边缘上搜索断裂边缘的具体方法为:
若假设第b个断点的边缘方向D[xb,yb]=0,水平方向,即初始搜索路径为水平方向,先判断该断点相邻的边缘像素位于(xb‑1,yb‑1),(xb‑1,yb),(xb‑1,yb+1),找出(xb,yb‑1),(xb+
1,yb‑1),(xb+1,yb),(xb+1,yb+1),(xb,yb+1)存在的超分割边缘像素,选择具有最大梯度幅值的邻域像素点,若该像素点不属于边缘像素,则将其加入边缘像素集合,并作为新的搜索起点;若与该断点相邻的边缘像素位于(xb+1,yb‑1),(xb+1,yb),(xb+1,yb+1),则搜索(xb,yb‑
1),(xb‑1,yb‑1),(xb‑1,yb),(xb‑1,yb+1),(xb,yb+1),重复上述操作;若当前断点的边缘方向为垂直方向,先判断该断点相邻的边缘像素位于(xb‑1,yb‑1),(xb,yb‑1),(xb+1,yb‑1),找出(xb‑1,yb),(xb‑1,yb+1),(xb,yb+1),(xb+1,yb+1),(xb+1,yb)存在的超分割边缘像素,选择具有最大梯度幅值的邻域像素点作为新的搜索点;若与该断点相邻的边缘像素位于(xb‑1,yb+
1),(xb,yb+1),(xb+1,yb+1),则搜索(xb‑1,yb),(xb‑1,yb‑1),(xb,yb‑1),(xb+1,yb‑1),(xb+1,yb),重复上述操作,从新的搜索点继续进行搜索,直到断点数目保持不变为止;
步骤4.2:对新的断点位置进行方向取反:
由于这部分断点受边缘方向约束,采用方向取反操作,重新进行边缘搜索;
步骤4.3:重复上述步骤4.1和步骤4.2,直到断点数目不发生变化时停止搜索,最终得到完整的边缘封闭轮廓,即得图像分割的效果。
2.根据权利要求1所述的一种基于分水岭约束和边缘连接的图像分割算法,其特征在于所述步骤1具体包括以下步骤:步骤1.1:将RGB彩色图像转换为灰色图像:
步骤1.2:对灰色图像进行高斯滤波:
步骤1.3:计算滤波后图像的梯度幅值图和边缘方向图:
步骤1.4:根据梯度幅值图和边缘方向图,获取锚点图:
步骤1.5:连接锚点,获取初始边缘图。
3.根据权利要求1所述的一种基于分水岭约束和边缘连接的图像分割算法,其特征在于所述步骤2具体包括以下步骤:步骤2.1:获取分水岭算法所需的标记点:
通过利用梯度图G[x,y],将整幅图像的局部最大值点作为标记点,以像素点(xi,yi)为中心,与其八邻域的像素梯度幅值进行比较,若该点的梯度幅值大于其他像素点梯度幅值,则将该点作为标记点;
其中,i‑>p表示像素点i的八邻域像素点p,(p=1,2,…8),Mark[x,y]表示标记图;
步骤2.2:获取超分割边缘图:
首先将高斯滤波后的图像转换为三通道图像作为输入图像,利用步骤2.1得到的标记点,使用分水岭算法得到超分割边缘图,并将其转换为单通道图;
wMap[x,y]=cvtColor(Watershed(Gauss[x,y],Mark[x,y]),BGR2GRAY)其中,wMap[x,y]代表超分割边缘图,cvtColor(f[x,y],BGR2GRAY)表示将三通道图f[x,y]转换为单通道,Watershed()表示分水岭处理。
4.根据权利要求1所述的一种基于分水岭约束和边缘连接的图像分割算法,其特征在于所述步骤3具体包括以下步骤:步骤3.1:断点检测:
首先使边缘像素值为255,背景值为0,然后遍历初始边缘图,统计当前像素i的八邻域中与边缘像素相邻的个数N,若N≤1,则当前像素点为一个断点;
其中,N代表与边缘相邻的像素个数,eMap[xi‑>p,yi‑>p]为像素点x的像素值,p为八邻域的第p邻域;
步骤3.2:断点距离连接:
对于得到的断点,设置一个距离阈值,计算出两两断点之间的距离,满足阈值内的断点则进行直线连接;
d=|x1‑x2|+|y1‑y2|
其中,d代表两个断点之间的距离,k代表断点距离阈值;
步骤3.3:去除伪断点:
在确定边缘初始搜索点之前,需要将断点中存在的伪断点进行去除,主要方法是将所有断点位置处的边缘像素值置为0,重新检测边缘图中的断点,这样将会去除掉伪断点,同时将其他位置断点更新为与其相邻的边缘点;
eMap[xi,yi]=0,(xi,yi)∈BP[(xb1,yb1),(xb2,yb2)…(xbn,ybn)]其中,BP表示断点集合,eMap[xi,yi]表示像素点(xi,yi)的边缘像素值。
5.根据权利要求4所述的一种基于分水岭约束和边缘连接的图像分割算法,其特征在于:步骤3中将所有断点更新到超分割边缘的方法的具体方法如下:假设当前断点为(xb,yb),与其相邻的边缘点为(xb,yb‑1),判断G[xb‑1,yb+1],G[xb,yb+
1],G[xb+1,yb+1]的梯度最大值点,将其更新为新的断点;若与断点相邻的边缘点为(xb,yb+
1),则判断G[xb‑1,yb‑1],G[xb,yb‑1],G[xb+1,yb‑1];若与断点相邻的边缘点为(xb‑1,yb‑1),则判断G[xb+1,yb],G[xb,yb+1],G[xb+1,yb+1];
若与断点相邻的边缘点为(xb+1,yb+1),则判断G[xb‑1,yb],G[xb‑1,yb‑1],G[xb,yb‑1];
与断点相邻的边缘点位于(xb+1,yb),(xb‑1,yb),(xb‑1,yb+1),(xb+1,yb‑1),重复上述步骤,直到将断点更新到超分割边缘上为止。