OpenCV 传统分割测试

 

github官网源文件:https://github.com/opencv/opencv/tree/master/samples/python

最好是先克隆整个仓库下来,再测试里面的:floodfill.py、watershed.py、grabcut.py

 

基本原理:

floodfill

输入: 选定点,设置高低阈值

输出: 满足阈值的点组成的联通区域

算法: 寻找相邻(4或8连通)区域进行扩散,直到没有新的点可加入。

watershed

输入:marker,人工标记一些点(可以是一片区域),对希望区分出来的不同区域的点,赋以不同的值。

输出:算法根据marker的值,计算原图中每个点的归属。

算法:以标记图中的相应标记作为种子点,对梯度图像进行变换,当不同标记汇合时产生分水线。

grabcut

输入:选定前景区域或mask点,选取背景mask点

输出:分割后的前景mask点

算法:源于这样的假设,未标记的前景(背景)和标记的前景(背景)有相似的分布,区域是平滑和连通的。

 

posted @ 2019-01-09 15:25  xbit  阅读(457)  评论(0编辑  收藏  举报