Opencv每日函数 图像分割模块 watershed分水岭算法
2023-09-14 09:01:35 时间
一、分水岭理论概述
任何灰度图像都可以看作是一个地形表面,其中高强度表示峰和丘陵,而低强度表示山谷。您开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位的上升,根据附近的山峰(梯度),来自不同山谷的水,显然具有不同的颜色将开始合并。为避免这种情况,您可以在水合并的位置建立障碍。你继续注水和建造障碍物,直到所有的山峰都被淹没。然后,您创建的障碍会为您提供分割结果。这就是分水岭背后的“哲学”。
但是由于图像中的噪声或任何其他不规则性,这种方法会给您带来过度分割的结果。因此OpenCV实现了一个基于标记的分水岭算法,您可以在其中指定要合并哪些谷点,哪些不合并。它是一种交互式图像分割。我们所做的是为我们所知道的对象赋予不同的标签。用一种颜色(或强度)标记我们确定为前景或对象的区域,用另一种颜色标记我们确定为背景或非对象的区域,最后标记我们不确定的区域,用 0 标记它。那是我们的标记。然后应用分水岭算法。然后我们的标记将使用我们提供的标签进行更新,并且对象的边界将具有 -1 的值。
在将图像传递给函数之前,您必须用正 (>0) 索引粗略地勾勒出图像标记中所需的区域。因此,每个区域都表示为一个或多个具有像素值 1、2、3 等的连通分量。可以使用findContours和drawContours从二进制掩码中检索此类标记(请参阅 watershed.cpp 演示)。标记是未来图像区域的“种子”。标记中的所有其他像素,其与
相关文章
- ubuntu18.04安装opencv教程_Ubuntu18安装opencv
- Python+OpenCV实时图像处理「建议收藏」
- Opencv分水岭算法——watershed自动图像分割用法[通俗易懂]
- OpenCV-Python (Sobel算子)[通俗易懂]
- Opencv cvCircle()函数[通俗易懂]
- pycharm配置OpenCV_pycharm opencv安装
- OpenCV的扩展包opencv_contrib的安装
- 【OpenCV】中copyto()函数的使用方法理解
- 【1】windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置
- 【4】配置和运行Opencv常见的一些问题总结,以及bug解决。
- 干货 | 轮廓逼近原理与OpenCV应用(附Python-OpenCV文档下载)
- OpenCV 叠加应用 remap
- OpenCV图像匹配算法之surf详解编程语言
- 手把手教你如何用 OpenCV + Python 实现人脸识别