图像阈值分割---基本的全局阈值

       由于阈值处理直观、实现简单且计算速度快,因此图像阈值处理在图像分割中处于核心地位,下面我会为大家介绍阈值处理的方法,并用OpenCV给出实现的代码。

第一种:图像阈值分割---基本的全局阈值

1.  处理流程:

             1.为全局阈值选择一个初始估计值T(图像的平均灰度)。
             2.用T分割图像。产生两组像素:G1有灰度值大于T的像素组成,G2有小于等于T像素组成。
             3.计算G1和G2像素的平均灰度值m1和m2;
             4.计算一个新的阈值:T = (m1 + m2) / 2;
             5.重复步骤2和4,直到连续迭代中的T值间的差为零。

             此种方法主要适用于图像直方图有明显波谷。

2.源代码:      

/******************************************************************************* 
函数名称  : BasicGlobalThreshold 
函数描述  : 图像阈值分割---基本的全局阈值(适合图像直方图有明显波谷)
输入参数  : N/A
输出参数  : N/A
返 回 值    : int k1---------------------------------迭代得到的阈值
作     者    : N/A    2013-01-22
处理流程:1.为全局阈值选择一个初始估计值T(图像的平均灰度)。
          2.用T分割图像。产生两组像素:G1有灰度值大于T的像素组成,G2有小于等于T像素组成。
          3.计算G1和G2像素的平均灰度值m1和m2;
          4.计算一个新的阈值:T = (m1 + m2) / 2;
          5.重复步骤2和4,直到连续迭代中的T值间的差为零。
*******************************************************************************/ 
 int CThreasholdProcess::BasicGlobalThreshold(int*pg,int start,int end)
 {
	 int  i,t,t1,t2,k1,k2;
	 double u,u1,u2;    
	 t=0;     
	 u=0;

	 for (i=start;i
3.演示结果

a).被处理的源图像                                                                                                                         b).基本的全局阈值处理后图像                                                                      c)源图直方图

  

           

你可能感兴趣的:(OpenCV)