阈值选择

更新时间:2024-03-30 22:01

图像处理中,经常要进行阈值的选取,在单独求阈值时, 很多程序都是用C++ 来实现的, 而用MATLAB的却很少, 一般都是什么直方图之类的

二维指数熵图像阈值选取方法及其快速算法

④确定f的每个象素对应的阈值;

⑤根据求出的阈值输出二值图象g。

原图中可能含有噪声,在处理前要进行去噪,可采用均值滤波器或中值滤波器,或者选择更为复杂一些的如自适应滤波方法。在第①步采用Sobel算子进行边缘提取:

|f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)-[f(i+1,j-1)+2f(i+1,j)+f(i+1,j+1)]|+

|f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1)-[f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1)]|

第②步是对边缘特征图象进行常规二值化,以确定哪些象素点是边缘象素点。这是可采用平均灰度值或最大熵法等方法。第④步是算法的关键,根据第②步的结果进行二值化阈值的自动选择,在边缘象素点进行局部阈值计算。算法具体实现如下:

for(i=1;i)

{for(j=1;j)if b(i,j)=1 //若是边缘象素点。A=与求e(i,j)相关的象素点的平均灰度值

A=(f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)+f(i-1,j)+f(i,j)+f(i+1,j)+f(i-1,j+1)+f(i,j+1)+f(i+1,j+1))/9; //将每个与求e(I,j)相关的象素f(u,v)的熵值赋给ATh(i-1,j-1)=A;Th(i,j-1)=A;Th(I+1,j-1)=A;Th(i-1,j)=A;Th(i,j)=A;Th(I+1,j)=A;Th(i-1,j+1)=A;Th(i,j+1)=A;Th(I+1,j+1)=A;}

{Else //非边缘点的阈值为Th0Th(i,j)=Th0;}

第⑤步根据计算处的阈值对f进行二值化处理,即刻得到输出图象g。

3 实验结果比较

上节提出了把图象边缘特征与其他阈值选取结合起来的算法。图1~4是用该算法和其他几种自动选取阈值二值化方法对同一幅图形进行处理比较的结果。

二维shannon信息熵法是图像阈值分割中常用的经典算法,但存在着不足。为此,提出了一种二维指数信息熵阈值选取方法,克服了对数熵的不足,将对数改为指数,提高了速度。同时给出了一种二维指数熵阈值选取的快速算法,通过改变二维直方图的区域划分,将二维阈值转换为一维,运行时间不到原算法的1%。实验结果表明,该算法能快速准确地实现图像分割。

阈值选取是图象处理与 分析 的基础。针对几种常用的图象二值化自动选取阈值 方法 ,通过 计算 机仿真对实验结果进行了比较 研究 。在此基础上,提出了一种新的图象二值化算法。该算法着重于在图象二值化时保留图象的边缘特征。实验结果表明,这个基于边缘特征检测算子的算法能很好地保留原图的边缘特征,并能处理低质量的图象。

图象分割是图象分子合处理的重要手段,其目的是从图象中把目标区域和背景区域分开。图象分割有很多方法,其中最为简单和有效的是阈值处理。通过选择一个或几个合适的灰度阈值,原图中的目标和背景就很容易被分开。如何选取阈值能达到有效的分割效果,是阈值处理的关键。

1 几种典型算法

1.1平均灰度值法

该方法以图象中的所有象素的灰度值的平均值为阈值。阈值可由下面的公式计算得到: 其中,N为象素总数,L为最大灰度级,f(i,j)为点处的灰度值。

该方法计算简单,对哪些对比度强的图象非常有效,但对哪些对比度较低的图象则效果较差。

1.2类别方差法

对一幅图象,根据一个门限可将其划分为前景和背景两类,选取不同的门限可以得到不同的类别分离性能,类别方差反映了类别划分的性能。类别方差自动门限法就是利用类别方差作为判断依据,选取使得 类间方差最大和类内方差最小的门限作为最佳阈值。

设图象中的灰度范围是G={0,1,2,…,L-1},选择门限t将其划分为两类:

1.3最大熵法

因为熵属于一种均匀度量,均匀性用熵来度量3时,则可以导出最大熵阈值法:设t为阈值,目标灰度分布为p0/Pt,p1/Pt,…,pt/Pt,其中, 。

同样,背景灰度分布为pt+1/(1-Pt),…,pL-1/(1-Pt),

目标部分熵为

背景部分熵为 ,直方图的熵为E(t)=E1(t)+E2(t)

E(t)最大即意味着目标区域和背景区域内各自的灰度分布具有最大的同一性,同时t代表分割两区域的阈值。

该方法由于涉及对数运算,运算速度较慢,但对不同目标大小和信噪比的图象能产生较好的分割效果。

以上几种算法都没有考虑在二值化过程中保留原有图象的特征。

2 基于边缘特征的二值化方法

边缘特征在文字识别、指纹识别等 应用 中是非常重要的特征,是识别成功与否的关键。因此,在这些应用中的二值化预处理过程中,我们希望能较好地保留原有图象的边缘特征,并不增加新的边缘特征。算法思想的关键:首先,用微分算子检测图象的边缘;然后,在这些边缘象素点上进行二值化阈值的自动选取;最后,对于其他非边缘象素点则采取常规方法进行二值化处理。该算法描述如下://f为去噪后的输入图象,g为二值化后的图象

①对f进行抽取边缘特征,得到边缘图象e;

②对e进行常规二值化处理,得到二值图象b;

③用整体阈值法确定一个f的整体阈值;

二值化 一维 图象分割 最佳阈值

相关参考

振动论坛 http://www.chinavib.com/forum/thread-50111-1-1.html

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}