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

Mil*_*d R 23 algorithm opencv contour computer-vision

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

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

它是如何工作的?

fir*_*ant 25

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

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

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

其中一个回答的这个问题有链接到有问题的文件,该链接是死的,纸是付费墙后,或许谷歌可以找到一个免费副本帮助.

  • 谢谢,但是有一个问题。我在Internet上找不到这篇文章(1985年!),而且opencv的代码接近1700行,并且由于它是模块化的,所以我找不到该函数中使用算法的主要功能。您能给我一个解释算法前景的链接吗(不是那么复杂,如果也有简单的解释!) (2认同)

Kam*_*yar 5

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

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