一种快速细化算法

时间:2011-11-10 13:41:46

标签: image-processing opencv

我正在寻找一种可以使用OpenCV轻松实现的快速细化算法。提到这个库是因为有些东西可以用,例如Mathematica或MATLAB,这需要在OpenCV + C中使用手工编码行。

算法必须满足1像素厚度和连通性标准。

有没有人有过实施大量可用算法的经验? - 谷歌抛出的绝对数量的论文真的被宠坏了。任何正确方向的指针都可以。

4 个答案:

答案 0 :(得分:17)

请检查我的博客中的一些细化实现:

  1. Zhang-Suen algorithm。 (copy on archive.org
  2. Guo-Hall algorithm。 (copy on archive.org
  3. 两者都使用OpenCV 2.x API。

答案 1 :(得分:10)

为了完整起见,我在这里发布了一组使用OpenCV和C / C ++实现的细化算法,我在回答this问题时在网上发现了这些算法。这些已根据我的需要充分回答了这个问题。把它们放在这里以防其他人有类似的要求。

  1. OpenCV code for thinning(郭和霍尔算法,与CvMat输入一起工作)
  2. The JR Parker implementation使用OpenCV
  3. 可能更有效的代码here(使用OpenCV优化的访问方法很多,但是大部分页面都是日语!)

答案 2 :(得分:4)

我也使用了张洙和郭Hall;两者都取得了令人满意的结果,但不是最好的然后我尝试了Y. Y. ZHANG和P.S.P Wang的“A Modified Parallel Thinning Algorithm”。它比前两个算法好得多。任何寻找良好细化算法的人都应该尝试它,因为它比其他两个更快更有效。

答案 3 :(得分:1)

不确定这是否会对您有所帮助,但我已经使用了这个库并发现它非常有用,(包括细化/骨架化)。您可以在此处下载源代码:

http://www.aforgenet.com/framework/

这是一篇很好用的文章:

http://www.codeproject.com/KB/GDI-plus/Image_Processing_Lab.aspx