首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

二值图像中封锁孔洞的高效填充算法(附源码)

2013-09-09 
二值图像中封闭孔洞的高效填充算法(附源码)。由于CSDN博客和博客园的编辑方面有不一致的地方,导致文中部分

二值图像中封闭孔洞的高效填充算法(附源码)。


    由于CSDN博客和博客园的编辑方面有不一致的地方,导致文中部分图片错位,为不影响浏览效果,建议点击打开链接。

       

      鉴于心情不好,这篇文章只是简单的说说这个算法的过程。

     在对图像二值化后,不管用的是什么二值算法,总会存在一些瑕疵,这个时候我们就需要进行一些列的处理,去除那些我们不想要的糟粕,这类方法其实有很多,比如去除孤点、去除孤枝等等,这里介绍下去除封闭孔洞的一种算法。

     首先,注意我们这里是去除封闭孔洞,何谓封闭孔洞?我们认为如果一个特征的边缘完全被另外一个特征包围,则认为其为一个封闭的特征,比如在下图中:

                                             二值图像中封锁孔洞的高效填充算法(附源码)   

     1所标注处就是封闭的孔洞,2所标注极为开式孔洞。

     对于识别来说,很多情况下,我们希望能够把这些封闭孔洞用周边的特征来填充,从而减少特征的数量。

     一种直觉的想法就是,用FloodFill,不过如果直接用FloodFill,我们无法直接定位那些未知需要进行种子填充的, 但是Gabriel Landini, G.Landini 在2008年5月给我们写了个非常简单的代码实现了这一过程:

  二值图像中封锁孔洞的高效填充算法(附源码)  二值图像中封锁孔洞的高效填充算法(附源码)  

 二值图像中封锁孔洞的高效填充算法(附源码) 二值图像中封锁孔洞的高效填充算法(附源码)  二值图像中封锁孔洞的高效填充算法(附源码)

                      原图                              二值图                            填充后的图    

     至于是要填充掉前景的孔洞还是背景的孔洞这可能需要作者自己判断了。

     如果我们要去掉指定面积小于指定值得孔洞,而保留大于的,你知道该怎么办吗?

     关于FloodFill函数,我在稍微展开一下吧,一般情况下这个函数都是用的四领域或者八领域的区域生长法实现的,如果能充分掌握该函数的编写,可以实现很多功能,比如PS的连续的魔术棒功能、比如二值图像的去除噪点、漫画分割、一些识别上等等,举例如下:

    一、连续的魔术棒

     二值图像中封锁孔洞的高效填充算法(附源码)     二值图像中封锁孔洞的高效填充算法(附源码)

    

    二、清除二值图像的孤点

 二值图像中封锁孔洞的高效填充算法(附源码) 二值图像中封锁孔洞的高效填充算法(附源码)  二值图像中封锁孔洞的高效填充算法(附源码)

  是不是感觉和这里的填充孔洞类似,不过两者还是有所区别的。

    三、PCB板的某个元器件的定位                          

   二值图像中封锁孔洞的高效填充算法(附源码)   二值图像中封锁孔洞的高效填充算法(附源码)

 

      好了,不扩展了,对填充孔洞有兴趣的朋友可以从这里下载源码:http://files.cnblogs.com/Imageshop/FillHole.rar

  希望看过认为好的朋友多多支持。 

 

*****************************基本上我不提供源代码,但是我会尽量用文字把对应的算法描述清楚或提供参考文档*********************

*************************************因为靠自己的努力和实践写出来的效果才真正是自己的东西,人一定要靠自己****************************

*********************************作者: laviewpbt   时间: 2013.9.8       联系QQ:  33184777  转载请保留本行信息************************

热点排行