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

十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

2013-09-08 
十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。由于CSDN博客和博客园的编辑方面有不一致的地

十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。

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


       图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。这个看似简单的问题,在过去的四十年里受到国内外学者的广泛关注,产生了数以百计的阈值选取方法,但如同其他图像分割算法一样,没有一个现有方法对各种各样的图像都能得到令人满意的结果。

     在这些庞大的分类方法中,基于直方图的全局二值算法占有了绝对的市场份额,这些算法都从不同的科学层次提出了各自的实施方案,并且这类方法都有着一些共同的特点:

  1、简单;

     2、算法容易实现;

     3、执行速度快。

     本文摘取了若干种这类方法进行了介绍。

     一:灰度平局值值法:

  1、描述:即使用整幅图像的灰度平均值作为二值化的阈值,一般该方法可作为其他方法的初始猜想值。

  2、原理:    

             十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

      3、实现代码:

 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 

 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

        原图                                                 二值图                                          原始直方图                平滑后的直方图

  对于这种有较明显的双峰的图像,该算法还是能取得不错的效果的。

     四、基于双峰平均值的阈值

       1、描述:

   该算法和基于谷底最小值的阈值方法类似,只是最后一步不是取得双峰之间的谷底值,而是取双峰的平均值作为阈值。

       2、参考代码:

 

  十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果 十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

       原图                                                 二值图                                           原始直方图                平滑后的直方图

    五、迭代最佳阈值

  1、描述:

    该算法先假定一个阈值,然后计算在该阈值下的前景和背景的中心值,当前景和背景中心值得平均值和假定的阈值相同时,则迭代中止,并以此值为阈值进行二值化。

    2、实现过程:

  (1)求出图象的最大灰度值和最小灰度值,分别记为gl和gu,令初始阈值为:

                        十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

      (2) 根据阈值T0将图象分割为前景和背景,分别求出两者的平均灰度值Ab和Af:

              十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

      (3) 令

                          十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

    如果Tk=Tk+1,则取Tk为所求得的阈值,否则,转2继续迭代。

     3、参考代码:

 

        十三种基于直方图的图像大局二值化算法原理、实现、代码及效果       十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

   十三种基于直方图的图像大局二值化算法原理、实现、代码及效果        十三种基于直方图的图像大局二值化算法原理、实现、代码及效果        十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

 

       原图                                          二值图                                         直方图 

   六、OSTU大律法

  1、描述:

       该算法是1979年由日本大津提出的,主要是思想是取某个阈值,使得前景和背景两类的类间方差最大,matlab中的graythresh即是以该算法为原理执行的。

       2、原理:

       关于该算法的原理,网络上有很多,这里为了篇幅有限,不加以赘述。

       3、参考代码:

 

     十三种基于直方图的图像大局二值化算法原理、实现、代码及效果      十三种基于直方图的图像大局二值化算法原理、实现、代码及效果

  该算法对于那些具有平坦的直方图的图像具有一定的适应能力。

      七、一维最大熵

     1、描述:

       该算法把信息论中熵的概念引入到图像中,通过计算阈值分割后两部分熵的和来判断阈值是否为最佳阈值。

      2、算法原理

       这方面的文章也比较多,留给读者自行去查找相关资料。

       3、参考代码: 

    其中的A\B\C的函数可见代码部分。

   3、参考代码:

 

Kittler, J & Illingworth, J (1986), "Minimum error thresholding", Pattern Recognition19: 41-47

  参考代码:

Ridler, TW & Calvard, S (1978), "Picture thresholding using an iterative selection method",IEEE Transactions on Systems, Man and Cybernetics 8: 630-632 参考论文:

 

      Shanbhag, Abhijit G. (1994), "Utilization of information measure as a means of image thresholding",Graph. Models Image Process. (Academic Press, Inc.) 56 (5): 414--419, ISSN1049-9652     参考代码(未整理):

 

 

 

 

 

 

 

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

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

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

 


热点排行