图像分割迭代法实现图像阈值分割:一.实验原理图像阈值化分割是一种最常用,同时也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。迭代法是基于逼近的思想,其步骤如下:(1)求出图象的最大灰度值和最小灰度值,分别记为Zmax和Zmin,令初始阈值T0=(Zmax+Zmin)/2;(2)根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB;(3)求出新阈值TK+1=(ZO+ZB)/2;(4)若TK=TK+1,则所得即为阈值;否则转2,迭代计算。迭代所得的阈值分割的图象效果良好。基于迭代的阈值能区分出图像的前景和背景的主要区域所在,但在图像的细微处还没有很好的区分度。经试验比较,对于直方图双峰明显,谷底较深的图像,迭代方法可以较快地获得满意结果。但是对于直方图双峰不明显,或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如最大类间方差法。二.实验内容对测试图像进行图像分割,求出分割测试图像的最佳阈值。分别显示原图、原图的直方图(标出阈值)、和分割后的二值图。图1——测试图像三.实验程序%分割clear;I=imread('D:\fenge.jpg');figure(1)subplot(121);imshow(I);title('原图');[M,N]=size(I);T=125;%令原图像直方图两峰之间的谷底作为阈值ok=true;whileokF1=I=T;F2=IT;aveF1=mean(I(F1));aveF2=mean(I(F2));newT=0.5*(aveF1+aveF2);ok=abs(T-newT)=1;T=newT;endF=255*(IT)+0*(I=T);figure(1)subplot(122);imshow(F)title('分割后的二值图像');figure(2)[counts,x]=imhist(I,256);counts=counts/M/N;stem(x,counts,'.');holdon;plot([T,T],[0,0.03],'r');%直方图阈值分界线str=num2str(T);text(T,0.01,'阈值分割线');text(T,0.015,str);title('原图直方图');四.结果分析从图2原图像直方图中可以看出,选择初始阈值时可以选择两峰值之间的谷底作为阈值,经过迭代计算后,可以得出最终阈值。如图3,经过迭代阈值分割后,图像的目标和背景明显分离。图2——原图像直方图图3——均值滤波前后图像五.总结①图像分割时,初始阈值可以根据原图像直方图确定一个大致的数值,也可以直接选取原图像均值作为初始阈值。②不同方法选取初始阈值,迭代之后的最终阈可能略有差异③画原图像直方图时,可以在图中直接用text函数标出最终算出的阈值。05010015020025030000.0050.010.0150.020.0250.03阈值分割线125.4018原图直方图原图分割后的二值图像