分水岭算法图像分割
算法 图像 分割
2023-09-11 14:22:51 时间
1、原理:
任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是
山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的
水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水
汇合,我们需要在水汇合的地方构建起堤坝。不停的灌水,不停的构建堤坝知
道所有的山峰都被水淹没。我们构建好的堤坝就是对图像的分割。这就是分水
岭算法的背后哲理。你可以通过访问网站CMM webpage on watershed来
加深自己的理解。
但是这种方法通常都会得到过度分割的结果,这是由噪声或者图像中其他
不规律的因素造成的。为了减少这种影响,OpenCV 采用了基于掩模的分水岭
算法,在这种算法中我们要设置那些山谷点会汇合,那些不会。这是一种交互
式的图像分割。我们要做的就是给我们已知的对象打上不同的标签。如果某个
区域肯定是前景或对象,就使用某个颜色(或灰度值)标签标记它。如果某个
区域肯定不是对象而是背景就使用另外一个颜色标签标记。而剩下的不能确定
是前景还是背景的区域就用 0 标记。这就是我们的标签。然后实施分水岭算法。
每一次灌水,我们的标签就会被更新,当两个不同颜色的标签相遇时就构建堤
坝,直到将所有山峰淹没,最后我们得到的边界对象(堤坝)的值为 -1。
2、函数: cv2.watershed()
相关文章
- 谷歌工程师的 LeetCode 算法笔记是怎么样的?
- 屏幕后处理效果系列之图像模糊算法篇
- 【算法】【字符串模块】判断字符串是否互为旋转词
- (《机器学习》完整版系列)第9章 聚类——9.2 k均值算法、学习向量量化算法(在类标记的指导下进行聚类)
- Google Earth Engine(GEE)——哨兵系列合成孔径雷达 (SAR) 图像Sentinel-1 算法影像加载和波段获取(新手必备)
- 基于CIFAR10图像数据集和SVM的图像分类算法matlab仿真
- 基于滤波反投影的图像重建算法matlab仿真,R-L滤波和S-L滤波
- 【图像颜色纹理特征】基于内容的图像颜色、纹理等特征的提取算法的MATLAB仿真
- 连续连通域检测算法的MATLAB仿真
- 基于Otsu全局阈值处理和区域分割的图像分割算法
- 基于Seam-Carving算法的图像拉伸收缩matlab仿真
- 【Gallerkin】Gallerkin算法的MATLAB仿真和对比分析
- 基于AES加解密的图像加解密算法
- 基于EM算法的图像融合算法,对图像不用进行多尺度分解
- 图像处理各种变换、运算、算法的简明原理、作用和应用场合
- 双线性内插法进行图像旋转算法的C代码实现
- C#,图像二值化(21)——局部阈值的韦尔纳算法(Wellner Thresholding)及源代码
- C#,图像二值化(14)——全局阈值的最佳迭代算法(Iterate Thresholding)及源代码
- C#,图像二值化(11)——全局阈值的百分比优化算法(Percentage Thresholding)及其源程序
- OpenCV 图像清晰度评价算法(相机自动对焦)
- 泛型编程是算法导向
- 对于强化学习算法中的AC算法(Actor-Critic算法) 的一些理解
- 【转载】 优必选悉尼 AI 研究院何诗怡:基于课程学习的强化多标签图像分类算法 | 分享总结
- 【排序算法】排序算法介绍及插入排序 ( 直接插入排序 && 希尔排序 )
- 数据结构之详解【排序算法】
- 华为OD机试 - 员工出勤(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 程序设计与算法(一)第2周测验(2020春季)
- 【数据结构和算法的概述】-01