opencv中的轮廓重复

Joe*_*ina 4 opencv image-processing hierarchy gpuimage

我在opencv中遇到了一些findContours问题.输出中的数据太多,我知道正确使用层次结构是关键.鉴于以下来自opencv文档的图片:

Opencv Docs

除了2a和3a之外,我想画出所有的轮廓.遍历层次结构和findContour参数以实现该结果的正确方法是什么?

Mic*_*nov 8

findContours函数找到的轮廓有方向.物体是逆时针的,孔是顺时针的.因此,如果您检查每个轮廓的有符号区域,您将通过其符号知道这是否是一个洞.可以通过以下方式计算轮廓的有符号区域:

contourArea(contour, true);
Run Code Online (Sandbox Code Playgroud)

当然使用层次结构也是一种很好的方法,但我认为这种方法更易于理解和实现.