当前位置:文档之家› 阈值分割技术

阈值分割技术

摘要图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。

图像分割是把图像中有意义的特征区域或者把需要的应用的特征区域提取出来。

阈值分割是一种简单有效的图像分割方法。

它对物体与背景又较强对比的图像分割特别有效,所有灰度值大于或等于阈值的像素被判决属于物体。

为常见的阈值分割方法有全局阈值、自适应阈值。

最佳阈值的选择有直方图技术、最大类间方差法(OTSU)、迭代法。

关键词:图像分割,阈值分割,灰度值,最佳阈值1 MATLAB简介及其应用MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB 产品族可以用来进行以下各种工作:1. 数值分析2. 数值和符号计算3. 工程与科学绘图4. 控制系统的设计与仿真5. 数字图像处理技术6. 数字信号处理技术7. 通讯系统设计与仿真8. 财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

Matlab的特点如下:1.此高级语言可用于技术计算2.此开发环境可对代码、文件和数据进行管理3.交互式工具可以按迭代的方式探查、设计及求解问题4.数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等5.二维和三维图形函数可用于可视化数据6.各种工具可用于构建自定义的图形用户界面7.各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成8.不支持大写输入,内核仅仅支持小写MATLAB 有出色的图形处理功能:向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

2 图像阈值分割分析对图像进行研究和应用时,人们往往对图像中的某些部分感兴趣,这些部分常被称为目标或对象(object )。

图像处理的重要任务就是对图像中的对象进行分析和理解。

在图像分析中,输出结果是对图像的描述、分类或其他结论,而不再像一般意义的图像处理那样——输出也是图像。

图像分割是将数字图像分成互不重叠的区域并提取出感兴趣目标的技图像分割算法一般是基于灰度的两个性质之一:不连续性和相似性。

第一个性质的应用是基于灰度的不连续变化来分割图像。

第二个性质的主要应用是根据事先制定的准则将图像分割为相似的区域。

这两种方法都有各自的优点和缺点。

图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。

图像阈值分割即是其中的一种方法。

图像分割也可理解为把图像中有意义的特征区域或者需要应用的特征区域提取出来,这些特性区域可以是像素的灰度值、物体轮廓曲线、 纹理特性等,也可是空间频谱或直方图特征等。

阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。

阈值分割图像的基本原理描述如下:利用图像中要提取的目标物与其背景在灰度特性上的差异,把图像视为具有不同灰度级的两类区域(目标和背景)的组合,选取一个合适的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生对应的二值图像。

即:()()()⎩⎨⎧≥<=.,1.,0,T y x I T y x I j i B阈值分割是一种简单有效的图像分割方法。

他对物体与背景有较强对比的图像分割特别有效,所有灰度大于或等于预知的像素被判决为属于物体,灰度值用“255”表示前景,否则这些像素点被排除在物体区域外,灰度值为“0”,表示背景。

3 图像的阈值分割技术阈值法有多种类型,主要有:全局阈值,自适应阈值等。

所谓全局阈值,如果背景的灰度值在整个图像中可合理的看做恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用了一个固定的全局阈值一般会有较好的效果。

3.1 全局阈值分割图2-1给出了利用全局阈值分割图像的实例。

图2-1(a)是原图,(b)是选择分割阈值为60的结果图。

MATLAB程序如下:%全局阈值I=imread('zw.jpg');[width,height]=size(I);for i=1:widthfor j=1:heightif(I(i,j)<150)BW1(i,j)=0;elseBW1(i,j)=1;endendendfiguretitle('全局阈值')imshow(BW1)这里设定了一个常数150,通过比较灰度值与150的大小关系来重新给图像赋值。

(a) 原图像(b)已分割图像图3.1 全局阈值分割3.2 自适应阈值但是,在许多情况下,背景的灰度值并不是常数,物体和背景的对比度在图像中也有变化,这时就要引入自适应阈值,一个在图像中某一区域效果良好的阈值在其他区域却可能效果很差。

在这种情况下,需要把灰度阈值取成一个随图像中位置缓慢变化的函数值,即为自适应阈值。

这类算法的时间复杂度和空间复杂度比较大,但是抗噪声的能力比较强,对采用全局阈值不容易分割的图像有较好的效果。

这种方法的关键问题是如何将图像进行细分和如何为得到子图像估计门限值。

由于用于每个像素的门限取决于像素在子图像中的位置,这类门限处理是自适应的。

4 最佳阈值的选择除非图像中的物体有陡峭的边沿,否则灰度阈值的取值对所抽取物体的边界的定位和整体的尺寸有很大的影响。

这意味着后续的尺寸(特别是面积)的测量对于灰度阈值的选择很敏感。

由于这个原因,我们需要一个最佳的,或至少是具有一致性的方法确定阈值。

4.1 直方图技术直方图双峰法是一种全局阈值分割方法。

假定物体和背景分别处于不同灰度级,图像被零均值高斯噪声污染,图像的灰度分布曲线近似用两个正态分布概率密度函数,分别代表目标和背景的直方图,利用这个函数的合成曲线拟合整体图像的直方图,图像的直方图将会出现两个分离的峰值。

该方法适用于具有良好双峰性质的图像,但需要用到数值逼近等计算,算法十分复杂,而且多数图像的直方图是离散的、不规则的。

先作出图像的灰度直方图,若其直方图呈双峰且有明显的谷底,则可以将谷底点所对应的灰度值作为阈值T,然后根据该阈值进行分割就可以将目标从图像中分割出来。

这种方法适用于目标和背景的灰度差较大,直方图有明显谷底的情况。

MATLAB图像处理工具箱提供了生成并绘制图像的直方图函数imhist( ),求门限函数graythresh( ),以及转换成二值图像函数im2bw( )。

图3-1给出了利用双峰法分割图像的实例。

图3-1(a)是原始的灰度图像,(b)是原图像的灰度直方图,(c)是直方图双峰法提取结果。

图3-1生成直方图后可以看到,图像有明显的双峰。

两个峰尖对应于物体内部和外部较多数目的点。

两峰之间的谷对应于物体边缘附近相对较少数目的点。

所以可以取谷底对应的灰度值作为阈值。

MATLAB程序如下:I=imread('ZW.jpg');I=rgb2gray(I);figure;subplot(1,3,1);imshow(I)title('原始灰度图')newI=im2bw(I,150/255);%根据上面直方图选择阈值150,划分图像的前景和背景figure;subplot(1,3,1);imshow(newI);title('分割后图像')MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图。

其中imhist(I,n)计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。

图4.1生成直方图图4.2 双峰法分割4.2 最大类间方差法(OTSU )最大类间方差法又称为OTSU 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。

它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分的方差取最大值,即分离性最大。

设X 是一幅具有L 级灰度级的图像,其中第i 级像素为i N 个,其中i 的值在0~L-1之间,图像的总像素点个数为:第i 级出现的概率为:在OTSU 算法中,以阈值k 将所有的像素分为目标0C 和背景1C 两类。

其中,0C 类的像素灰度级为0~k-1,1C 类的像素灰度级为k~L-1。

图像的总平均灰度级为:∑-==1L i iiPμNN P i i =∑-==1L i iNN0C 类像素所占面积的比例为:1C 类像素所占面积的比例为:01-=ωω10C 类像素的平均灰度为:00=ωμμ/)()(k k1C 类像素的平均灰度为:111=ωμμ/)()(k k其中,则类间方差公式为:22)()()(01002-+-=μμωμμωδk令k 从0~L-1变化,计算在不同k 值下的类间方差)(k 2δ,使得)(k 2δ最大时的那个k 值就是所要求的最优阈值。

图3-2为采用OTSU 方法取得最优阈值后进行阈值分割的结果。

MATLAB 程序如下: I=imread('ZW.jpg'); I=rgb2gray(I); subplot(1,3,1); figure;∑-=0=1k i iPω∑-=0=1)(k i iiPk μ∑-=01-==1)(1)(L ki ik iPk μμimshow(I)title('原始灰度图')%用MATLAB函数计算阈值level=graythresh(I);%OTSU计算全局图像I的阈值BW=im2bw(I,level);%阈值分割f igureimshow(BW)title('自适应阈值')MATLAB提供graythresh函数来自动获取分割阈值,im2bw 功能是转换图像为二值化图像。

相关主题