2011-11-10 106 views
17

我正在寻找一种可以使用OpenCV轻松实现的快速细化算法。提到这个库是因为某些事情可以用jiffy来完成,比如说Mathematica或者MATLAB,它需要OpenCV + C中的手写代码。快速细化算法

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

有没有人有过实现其中一种可用算法的经验? - 在谷歌投入的大量论文中,这些文章几乎被宠坏了。任何指向正确方向的指针都可以。

+0

“有人有任何经验”类型的问题往往得不到很好的回答:你有更具体的问题吗? – James

+0

@Autopulated:这是真的,但是我*有点模糊 - 有很多快速细化算法,问题是有谁使用OpenCV和C/C++实现了任何? – AruniRC

+0

你好@AruniRC,你最终得到了一些令人满意的实现吗? – zhy

回答

10

为了完整起见,我在这里张贴了一套细化算法使用OpenCV和C/C++实现,我在网上找到答案this问题。这些已经为我的需求充分回答了这个问题。把他们放在这里以防别人有类似的要求。

  1. OpenCV code for thinning使用OpenCV的
  2. 可能更有效的代码here(使用了OpenCV优化的接入方式有很多(郭和霍尔算法中,可与CvMat中输入)
  3. The JR Parker implementation,但是页面的大部分是日本人! )
+0

实际上,第三个终于比@flowfree的答案 – zhy

4

我还使用了Zhang-Suen以及Guo-Hall;都产生了令人满意的结果,但不是最好的结果然后我尝试了Y.Y. ZHANG和P.S.P Wang的“修正的并行细化算法”。它比前两种算法好得多。任何寻找一个很好的细化算法的人都应该尝试一下,因为它比其他两个更快更有效。

+0

你找到解释这个修改任何实现或文章?你能否详细说明它周围是如何更快? – pzo

+0

如果你下载的研究并且通读它们,你会注意到Zhang-Wang方法只做了一次迭代,另外还有一些不同的条件需要检查,我处理的是1600 * 1200的二进制图像。Zhang-Wang的方法大约需要5秒,孙和大约3秒,张,王方法。 – marc1886

+0

嗨Vikramjit,您可以共享的实现或描述您如何组合最后两个条件?我看报纸,但不知道怎么的条件结合P11 = 1,P6 = 0,对于修改的细化算法,条件p8 = 0,p15 = 1。 – abe