如何在OpenCV中加入/联合轮廓?

时间:2013-06-18 13:31:13

标签: c++ opencv computer-vision set-union

对于轮廓存在/合理的“加入”操作是否正常?由于轮廓界定了平面上的某些区域,因此可以将多个轮廓组合为一组。

不是吗?

如果是,那么如何结合轮廓?

1 个答案:

答案 0 :(得分:5)

是的,你可以结合(并交叉,设置差异和对称差异)轮廓。由于它们是cv :: Point的向量,因此表示为多边形,因此您可以使用适用于此的任何算法/库。只搜索SO以获取多边形联合等等。但是这样的东西不是(还是?)包含在OpenCV中。

OpenCV中的一种简单(但不是非常高性能)的方法是创建两个黑色图像,每个轮廓一个,每个轮廓绘制白色并填充,并使用按位或图像来获取联合图像。然后,您可以再次使用cv :: findContours对轮廓进行极端反应。 其他操作(交叉,设置diff和sym diff)可以相应地按位,减法和加法+阈值完成。