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

Posted

技术标签:

【中文标题】如何在 OpenCV 中加入/联合轮廓?【英文标题】:How to join/union contours in OpenCV? 【发布时间】:2013-06-18 13:31:12 【问题描述】:

这样的“加入”操作对于轮廓是否存在/合理?由于轮廓在平面上划定了一些区域,因此可以将多个轮廓合并为集合。

不是吗?

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

【问题讨论】:

【参考方案1】:

是的,您可以合并(和相交、设置差异和对称差异)等高线。由于它们是 cv::Point 的向量,因此表示为多边形,因此您可以使用任何适合的算法/库。只需在 SO 中搜索多边形联合等。但 OpenCV 中还没有(还没有?)包含类似的东西。

OpenCV 中一种简单(但性能不高)的方法是创建两个黑色图像,每个轮廓一个,将每个轮廓绘制为白色并填充,然后在图像上使用按位或来获得联合图像。然后,您可以再次使用 cv::findContours 提取轮廓。 其他操作(相交,设置差异和符号差异)可以通过按位与,相应的减法和加法+阈值来完成。

【讨论】:

以上是关于如何在 OpenCV 中加入/联合轮廓?的主要内容,如果未能解决你的问题,请参考以下文章

如何水平连接 OpenCV 轮廓?

如何在 Python OpenCV 中删除轮廓内的轮廓?

如何使用 openCV 库在视频中提取清晰的轮廓

如何在 OpenCV - Python 中获得没有冗余的内部轮廓点

在 presto 中加入/联合以将电子邮件保留在一列中

如何在 python opencv 中完成/关闭轮廓?