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

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

谢谢。

最佳答案

您将要看一看半自动图像分割。半自动透 View 中的图像分割意味着您事先知道某些像素属于什么类别-前景或背景。给定此先验信息,目标是最小化将其余像素最好地分割为前景和背景的能量函数。

我所知道的最好的两种方法是图割和随机游走。如果您想研究它们的基础知识,则应分别阅读Boykov(Graph Cuts)和Grady(Random Walks)的经典论文:

  • Graph Cuts-Boykov:http://www.csd.uwo.ca/~yuri/Papers/ijcv06.pdf
  • 随机漫步-Grady:http://webdocs.cs.ualberta.ca/~nray1/CMPUT615/MRF/grady2006random.pdf

  • 对于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

    祝好运!

    关于python - python图像分割中的“hard”监督,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28348766/

    10-12 23:54