这就是分水岭算法的通俗原理。你可以访问分水岭的CMM网页(http:www.cmm.mines-paristech.fr~beucherwtshed.html),里面有动画帮助理解。?
OpenCV实现了一种基于标记的分水岭算法,你可以指定哪些是要合并的谷点,哪些不是。我们所做的是给我们所知道的对象赋予不同的标签(marker)。
用一种颜色(或强度)标记我们确定的为前景或对象的区域,用另一种颜色标记我们确定为背景或非对象的区域,最后用0标记我们不确定的区域。
然后应用分水岭算法,其将使用我们给出的标签进行更新(填水),对象的边界值将为-1。 下面是示例代码,用于对金鱼图片进行分割:?
0markers cv2.watershed(img, markers)img1 cv2.cvtColor(img.copy(), cv2.COLOR_BGR2RGB)img1 #分水岭