zoukankan      html  css  js  c++  java
  • 分水岭算法图像分割

    1、原理:
    任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是
    山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的
    水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水
    汇合,我们需要在水汇合的地方构建起堤坝。不停的灌水,不停的构建堤坝知
    道所有的山峰都被水淹没。我们构建好的堤坝就是对图像的分割。这就是分水
    岭算法的背后哲理。你可以通过访问网站CMM webpage on watershed来
    加深自己的理解。
    但是这种方法通常都会得到过度分割的结果,这是由噪声或者图像中其他
    不规律的因素造成的。为了减少这种影响,OpenCV 采用了基于掩模的分水岭
    算法,在这种算法中我们要设置那些山谷点会汇合,那些不会。这是一种交互
    式的图像分割。我们要做的就是给我们已知的对象打上不同的标签。如果某个
    区域肯定是前景或对象,就使用某个颜色(或灰度值)标签标记它。如果某个
    区域肯定不是对象而是背景就使用另外一个颜色标签标记。而剩下的不能确定
    是前景还是背景的区域就用 0 标记。这就是我们的标签。然后实施分水岭算法。
    每一次灌水,我们的标签就会被更新,当两个不同颜色的标签相遇时就构建堤
    坝,直到将所有山峰淹没,最后我们得到的边界对象(堤坝)的值为 -1。
     
    2、函数: cv2.watershed()
     
  • 相关阅读:
    ImportError: libXext.so.6: cannot open shared object file: No such file or directory
    Django项目添加日志
    Django项目DEBUG=False时配置静态文件
    Django项目DEBUG=False时配置静态文件
    真的佩服python强大表达力
    mycharm环境建立django项目并增删改查
    Apache配置https
    安卓签名
    Android studion不能启动问题
    带你入门函数式编程
  • 原文地址:https://www.cnblogs.com/h694879357/p/12272999.html
Copyright © 2011-2022 走看看