opencv用于查找轮廓的算法是什么?

问题描述 投票:21回答:2

我需要在程序中使用cv::FindContours(),我必须知道背后的算法。

openCV使用什么算法来查找轮廓?

它是如何工作的?

algorithm opencv computer-vision contour
2个回答
25
投票

如果您阅读documentation,则提到此函数实现以下算法:

Suzuki,S。和Abe,K。,边界跟随数字化二值图像的拓扑结构分析。 CVGIP 30 1,第32-46页(1985)

OpenCV是开源的,如果你想看看它是如何实现的,只需要阅读代码:https://github.com/opencv/opencv/blob/master/modules/imgproc/src/contours.cpp#L1655

this question的答案之一与the paper in question有关 ,这个链接已经死了,纸张在支付墙后面,也许谷歌可以帮助找到一个免费的副本。


1
投票

截至2018年9月,该论文可通过Google Scholar获取。尽管如此,如果论文被删除,这是摘要:

针对数字化二值图像的拓扑分析,提出了两种边界跟随算法。第一个确定二进制图像的边界之间的环绕关系。由于外边界和孔边界分别与l像素和孔的连通分量一一对应,所提出的算法产生二进制图像的表示,从中可以提取某种二进制图像。功能无需重建图像。第二算法是第一算法的修改版本,仅遵循最外边界(即,未被孔包围的外边界)。当使用顺序数字计算机时,这些算法可以有效地用于二进制图像的分量计数,收缩和拓扑结构分析。

© www.soinside.com 2019 - 2024. All rights reserved.