分水岭算法笔记

网上关于分水岭算法的文章很多,有的很赞也有很多都是照搬,为了避免浪费时间,直接放上我觉得讲的不错的文章以及一些自己的总结。

1.OpenCV—图像分割中的分水岭算法原理与应用 先看这个文章感性的理解一下概念和思想。这篇文章里面含有C++的代码。

2. 图像分割的经典算法:分水岭算法 看完第一个,对于到底是怎么找到两个极小值盆地交界处的分水岭还不是很理解。在这篇文章中,作者详细介绍了分水岭算法的过程,并且介绍了一个测地距离的概念,提到了

“水平面在增长的过程中,会碰到周围的邻域像素,测量这些像素到起始点(灰度值最低点)的测地距离,如果小于设定阈值,则将这些像素淹没,否则在这些像素上设置大坝,这样就对这些邻域像素进行了分类。”

但是我还是没有理解这个测地距离在灰度图上是怎么使用的,在分水岭边界上如何计算到极值点的距离?以及文章中提到需要设置测地距离的阈值来确定,对于这个阈值也不是很理解,如果有哪位同学明白,可以给我解惑一下~ 总之,看完还是对于分水线的生成的实际操作比较懵逼。这篇文章的另一个优点是介绍了具体的案例,通过彼此黏连的硬币案例,了解了分水岭算法有具体的案例。

3. 最佳视频~ https://www.bilibili.com/video/BV1fk4y167Gv?spm_id_from=333.337.search-card.all.click&vd_source=4242990e0fbe2c9c04876ca373dbce12 视频教材,已看。这个视频很赞,解决了我关于如何理解水坝边界线是如何产生的问题。这里没有提到测地距离是如何使用的,分水岭是通过水位上升(区域外扩)的过程中,如果两个区域产生重叠,记录这些重叠的区域位置L;然后回到前一个状态,通过膨胀操作来确定两个区域的重叠区域边界在哪里,如果一次膨胀无法覆盖这些重叠区域L的全部像素,则会一致膨胀直到覆盖L中的所有像素,此时就得到了一系列的边界线位置。

你可能感兴趣的:(分水岭算法笔记)