opencv 分水岭 连通区域

本文介绍了如何使用OpenCV进行图像分割,特别是分水岭算法的应用。通过分析分水岭算法的原理和示例,讨论了在实际应用中遇到的问题,如背景扩散导致的分割问题。解决方案包括对图像进行连通区域分割,并通过BFS寻找山脊线。此外,还提及了利用BFS进行连通区域分割的方法,以及利用OpenCV的moments函数计算中心点,涉及矩的概念。
摘要由CSDN通过智能技术生成

最近需要基于opencv做一下图像分割的东西,之前接触图像处理也比较浅显,很多概念也不是很清楚,只能慢慢自己体会了

1. 分水岭算法

原理与例子:http://blog.csdn.net/h_wlyfw/article/details/38564537

             http://www.javashuo.com/content/p-6555513.html

http://docs.opencv.org/3.2.0/d3/db4/tutorial_py_watershed.html

源码:http://blog.csdn.net/ttransposition/article/details/9007197


             基本思路是:先找到marker的边缘,然后往4领域扩散,不同的2部分扩散相交就形成山脊,扩散的节点加到一个按照梯度降序排列的优先队列中


按照opencv的写法,最后调用watershed方法得到的marker中背景是连在一块的,但是项目需要画出这些label pixel(不知道怎么形容。。。Matlab的watershed函数返回值就是这个,在doc里面是这样称呼的,但是opencv返回值不是这个啊。。。)来,以此分割图像成若干块不相交的部分,

仔细分析源码发现:一旦扩散到背景像素就会一直扩散背景,因为背景的梯度一般比较小,这样背景就一直处在优先队列的头部,这样就会导致背景一直在扩散,别的区域根本扩不出去,导致最后以实际物体的边界为山脊

想来下,可以先对图像进行连通区域分割,然后得到label matrix,然后对label mat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值