OpenCV 4轮廓:如何从层次结构Python中删除轮廓?

问题描述

我的目标是识别轮廓,即图像的外部轮廓,例如在...中提出 How to remove a contour inside contour in Python OpenCV?

但是,我的工作流被确定的轮廓太大打扰了。

以文档示例为例: https://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html RETR_TREE

在我的情况下,轮廓0太大了,需要删除。这项任务并不困难,因为使用边界框或其他工具,我可以识别出不合适的轮廓(例如https://answers.opencv.org/question/65005/in-python-how-can-i-reduce-a-list-of-contours-to-those-of-a-specified-size/)。

困难的部分是:如何更新层次结构?

在示例中,层次结构将发生很多变化:

result

轮廓1例如将从

更新
hierarchy
array([[[ 7,-1,1,-1],[-1,2,0],3,1],4,2],5,3],[ 6,4],[ 8,7,-1]]])

[-1,0]

因为现在它的轮廓7处于相同的层次结构(自轮廓0存在以来就没有此轮廓),并且不再有父级。

如何在Python中实现?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)