OpenCV实战——基于分水岭算法的图像分割
0. 前言
分水岭变换是一种流行的图像处理算法,用于快速将图像分割成同质区域。分水岭变换主要基于以下思想:当图像被视为拓扑浮雕时,均质区域对应于相对平坦且由陡峭的边缘界定的盆地。算法的原始版本倾向于过度分割图像,从而产生多个小区域,因此 OpenCV
中实现了该算法的改进版本,通过使用一组预定义的标记来指导图像分割区域的定义。
1. 分水岭算法
分水岭分割可以通过使用 cv::watershed
函数实现,函数的输入是一个 32
位有符号整数标记图像,其中每个非零像素表示一个标签。
通过标记图像中已知属于给定区域的一些像素,利用初始标记,分水岭算法可以确定其他像素所属的区域。
(1) 首先,将标记图像读取为灰度图像,然后将其转换为整数类型:
class WatershedSegmentater