基于MATLAB的图像阈值分割技术Word下载.docx
《基于MATLAB的图像阈值分割技术Word下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的图像阈值分割技术Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
在物体与背景有较强的对比度的图像中,此种方法应用特别有效。
比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。
如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的
设图像为f(x,y),其灰度集范围是[0,L],在0和L之间选择一个合适的灰度阈值T,则图像分割方法可由下式描述:
这样得到的g(x,y)是一幅二值图像。
(一)原理研究
图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS法。
方法一:
双峰法
方法原理:
双峰法是一种简单的阈值分割方法。
双峰法先将原图转为灰度图,然后将灰度图转为灰度直方图,灰度直方图就是灰度级的像素数ni与灰度i的二维关系,它反映了一幅图像上灰度分布的统计特性,在MATLAB中使用函数imhist来实现。
如果得到的灰度直方图呈现明显的双峰状,则选取双峰之间的谷底所对应的灰度级作为阈值分割。
方法二:
迭代法
开始时候选择一个阈值作为初始估计值,然后按着某种策略不断得改进这个估计值,直到满足给定的准则为止。
(1)求出图像最大灰度值Max和最小灰度值Min,初始阈值估计值T0.=(Max+Min)*0.5.
(2)用T0将图像分割为目标和前景。
图像分成两组像素:
Z1由所有灰度值大于或等于T0的像素组成,而Z0由所有灰度值小于T0的像素组成。
(3)分别求出两者区域中的所有像素计算平均灰度值a1和a2。
(4)计算新的阈值T1=(a1+a2)*0.5.
如果|Ti+1-Ti|<
0.5,则退出循环,Ti+1即为所求阈值;
否则,将Ti+1复制给Ti,重复
(2)~(5)。
方法三:
OTSU法
方法原理
OTUS又称:
最大类间法,该算法是在使类间方差最大的自动确定阈值的方法,是在判决分析最小二乘法原理的基础上推到得出的,其算法比较简单,是一种方便可行的阈值选取方法。
设原始灰度图像灰度级范围为[0,L],灰度级为i的像素点数为ni,则图像的全部像素数为:
把图像中的像素按灰度值用阈值t分成两类C0和C1,由灰度值在[0,t]之间的像素组成,由灰度值在[t+1,L-1]之间的像素组成,对于灰度分布概率,整幅图的均值为
ut
因此,C0和C1的均值为:
其中
上面三式可得
ut=w0u0+w1u1
类间方差定义为:
让t在[0,L-1]范围一次取值,使类间方差最大的他值即为OUTS法的最佳阈值。
MATLAB工具箱提供的graythresh函数求取阈值。
算法:
1、双峰法图像阈值分割matlabcode:
I=imread('
cat.jpeg'
);
I=rgb2gray(I);
imhist(I)
直方图:
说明:
根据双峰法原理,观察到灰度图像直方图呈现明显的双峰状,则选取双峰之间的谷底所对应的灰度级作为阈值分割。
如上图,选取230作为分割点。
figure
subplot(1,2,1)
imshow(I);
[width,height]=size(I);
title('
原图'
)
fori=1:
width
forj=1:
height
if(I(i,j)<
230)
RC(i,j)=0;
else
RC(i,j)=1;
end
subplot(1,2,2)
imshow(RC)
双峰法图像阈值分割处理效果图'
此图为C=230
此图为C=150
此图为C=30
由此可得,阈值的选取在双峰法里十分的重要。
2、迭代法实行阈值分割的matlabcode:
I=double(I);
T=(min(I(:
))+max(I(:
)))/2;
done=false;
i=0;
while~done
r1=find(I<
=T);
r2=find(I>
T);
Tnew=(mean(I(r1))+mean(I(r2)))/2;
done=abs(Tnew-T)<
1;
T=Tnew;
i=i+1;
I(r1)=0;
I(r2)=1;
subplot(1,2,2)
imshow(I);
title('
迭代后效果图);
通过迭代法求阈值后进行的分割:
3、OTSU算法进行图像阈值分割的matlabcode:
level=graythresh(I);
BW=im2bw(I,level);
imshow(BW);
otsu算法阈值分割效果图'
(二)三者的比较研究
由结果可知:
迭代法和OTSU法的作用效果相似,设计原理相对于双峰来说要复杂点,但是分割效果比双峰法好些,但是对于有噪音的图片进行分割,OUST法和迭代法相对双峰法的处理效果要差些。
pink.jpg'
I=imnoise(I,'
salt&
pepper'
0.08);
加椒盐噪声'
三种算法同时进行图像阈值分割结果:
小结:
经研究可知迭代法和OTSU法的作用效果相似,都属于自动阈值选择法,设计原理相对于双峰来说要复杂点,并且对有噪音的图片处理不是很好,而且迭代对于图像的细微处或者浅色的线条还没有很好的处分度。
双峰法虽简单,但应用范围小,对于那些峰值不太明显或者目标背景交界处两边像素在灰度值上有差别不是很明显的图像,用双峰法来处理效果就不是很明显了。
相对而言,这三种方法中,OTSU法是一种比较通用的方法。
参考文献:
王桥编著数字图像处理科学出版社
杨杰编著数字图像处理及MATLAB实现电子工业出版社
冈萨雷斯编著数字图像处理第二版中文版电子工业出版社
张德丰编著数字图像处理(MATLAB版)人民邮电出版社