图像分割(python)


图像分割根据目标与背景的先验知识将图像表示为物理上有意义的连通区域的集合,即对图像中的目标、背景进行标记、定位,然后将目标从背景或其他伪目标中分离出来。

1、阈值分割

若图像中目标和背景具有明显不同的灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割,那么可以用阈值分割灰度级的方法在图像中分割出目标区域和背景区域。
设图像为f(x,y),其灰度集范围是[ Z 1 Z_1 Z1, Z k Z_k Zk],在 Z 1 Z_1 Z1 Z k Z_k Zk之间选择一个合适的灰度阈值T,则
g a ( x , y ) = { Z E ,    f ( x , ) ≥ T Z B ,    f ( x , ) < T ga(x,y)=\begin{cases} Z_E, \ \ f(x,)\ge T\\ Z_B, \ \ f(x,)< T \end{cases} ga(x,y)={ ZE,  f(x,)TZB,  f(x,)<T

1.1、确定阈值

  • 全局阈值:选取的阈值仅与各个像素的灰度有关。
  • 局部阈值:选取的阈值与像素本身及其局部性质(如邻域的平均灰度值)有关。
  • 自适应阈值:选取的阈值不仅与局部性质有关,还和像素的位置有关。

1.2、自定义函数

1.3、Opencv函数

2 、基本区域生长

将具有相似性质(如灰度级、纹理、颜色等)的像素集合起来构成区域,它们对应于实际感兴趣的目标。
具体步骤:

  • 找出一个种子像素作为生长的起点
  • 将种子像素具有相同或相似性质的像素合并道种子所在区域中。
  • 将这些新像素当作新种子继续前两个步骤,直到没有可接受的邻域像素时停止生长。

区域生长

2.1 、自定义函数

3、区域分裂与合并

将图像分成若干个子区域,对于任意一个子区域,如果不满足某种一致性准则(一般用灰度均值和方差度量),则将其继续分裂成若干个子区域,否则该子区域不再分裂。如果相邻的两个子区域满足某个相似性准则,则合并为一个区域。直到没有可以分裂和合并的子区域为止。
区域分裂与合并

3.1、自定义函数

4、分水岭算法

分水岭比较经典的计算方法是L.incent于1991年在PAMI上提出的[1]。传统的分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆地,而集水盆地的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸人水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝如下图所示,即形成分水岭。
分水岭

4.1、Opencv函数

4.2、自定义函数

猜你喜欢

转载自blog.csdn.net/m0_53192838/article/details/127504580