我在使用opencv的findContours功能时遇到了一些问题。输出的数据量太多,我知道正确使用层次结构是关键。下面是来自opencv文档的图片:
我想绘制除了2a和3a之外的所有轮廓。请问如何正确遍历层次结构和设置findContour参数以实现该结果?
![Opencv Docs](https://istack.dev59.com/FdIWb.webp)
由findContours函数找到的轮廓有方向。对象是逆时针的,洞是顺时针的。因此,如果您检查每个轮廓的带符号面积,可以通过其符号知道这是否是一个洞。轮廓的带符号面积可以按以下方式计算:
contourArea(contour, true);
在Michael Burdinov所说的基础上,返回对象或持有者的正值和负值。
RETR_CCOMP
。我希望它能为您提供一个两级层次结构,其中2a和3a属于第2级,而所有其他内容都属于第1级。(我还没有尝试过,所以不能确定。请自行检查) - Abid Rahman K