opencv的轮廓定义细分为两种,
- 外黑内白的边界为外轮廓(external);
- 外白内黑的边界为孔轮廓(hole)
关于轮廓的获取算法 opencv应用的是suzuki85轮廓跟踪算法:
论文题目: Topological Structural Analysis of Digitized Binary Images by Border Following
论文作者: SATODHI SUZUK, KEIICHI ABE
论文翻译:[Suzuki85]轮廓跟踪算法论文翻译
源代码解读:Opencv轮廓跟踪算法源码分析(1)——icvFetchContour()
参数解读:
cv.RETE_LIST: 提取所有轮廓但不建立任何层次关系
cv.RETE_EXTERNAL: 只提取外轮廓(可能有多个外轮廓,只是不提取孔轮廓)
cv.RETE_TREE: 树形结构表示轮廓的从属关系
cv.RETE_CCOMP: 提取所有轮廓,把它们组织成两级结构。第一级是连通域的外边界(external boundaries),第二级是孔边界(boundaries of holes)。如果在孔中间还有另外的连通域,则被当成另一个外边界。