【问题标题】:"hard" supervision in image segmentation with python使用 python 进行图像分割的“硬”监督
【发布时间】:2015-04-05 14:11:54
【问题描述】:

Python 中有几种用于分割的包和方法。但是,如果我先验地知道某些像素(而不是其他像素)对应于特定对象,我如何使用它来分割其他对象?

在 python 中实现的哪些方法适合这种方法?

谢谢。

【问题讨论】:

    标签: python image opencv image-processing image-segmentation


    【解决方案1】:

    您需要了解半自动图像分割。半自动透视中的图像分割意味着您事先知道某些像素属于哪个类别 - 前景或背景。鉴于此先验信息,目标是最小化一个能量函数,该能量函数最好地将其余像素分割成前景和背景。

    我所知道的最好的两种方法是 Graph Cuts 和 Random Walks。如果你想研究它们的基础知识,你应该分别阅读 Boykov (Graph Cuts) 和 Grady (Random Walks) 的规范论文:

    对于 Graph Cuts,OpenCV 使用 GrabCut 算法,它是原始 Graph Cuts 算法的扩展:http://en.wikipedia.org/wiki/GrabCut。本质上,您在要分割的对象周围环绕一个框,并且使用高斯混合模型对前景和背景进行建模,并且该对象将从该框内的背景中分割出来。此外,您可以在框内添加前景和背景标记,以进一步约束解决方案,以确保获得良好的结果。

    查看这个官方 OpenCV 教程了解更多详情:http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_grabcut/py_grabcut.html

    对于 Random Walks,这是在 scikit-image 库中实现的,这里有一个很棒的教程,介绍如何在他们的官方网站上启动和运行分段:http://scikit-image.org/docs/dev/auto_examples/plot_random_walker_segmentation.html


    祝你好运!

    【讨论】:

    • 谢谢 rayryeng,我没想到会这样
    • @user3391229 - 完全没问题。你试图解决的问题是众所周知的,这是我所知道的最好的两种技术,它们有很好的效果。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多