资源描述:
《灰度阀值变换及二值化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、当图像的像素点的灰度大于T的时候,设置这个点为全黑,要不然为全白。这样可以只选择我们感兴趣的领域。im2bw(I,level);%阈值法从灰度图、RGB图创建二值图。level为人工设定阈值(thresholdvalue),范围为[0,1]最大类间方差法(OTSU算法)最大类间方差法是由日本学者大津(NobuyukiOtsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大律法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别
2、变小。因此,使类间方差最大的分割意味着错分概率最小。在Matlab中, graythresh函数使用最大类间方差法获得图像的阈值。(注意标点‘‘要换一下)I=imread(‘beauty_yellowflowers.jpg’);thresh=graythresh(I);%自适应设置阀值bw1=im2bw(I,thresh);bw2=im2bw(I,130/255);%手工设置阀值subplot(1,3,1);imshow(I);title(‘original’)subplot(1,3,2);imshow(bw1);title(‘autoset_thresh’);sub
3、plot(1,3,3);imshow(bw2); title(‘thresh=130’);最小分类错误全局二值化算法(kittlerMet算法)函数源代码:functionimagBW=kittlerMet(imag)%KITTLERMETbinarizesagrayscaleimage'imag'intoabinaryimage%Input:% imag:thegrayscaleimage,withblackforeground(0),andwhite% background(255).%Output:% imagBW:thebinaryimageoftheg
4、rayscaleimage'imag',withkittler's% minimumerrorthresholdingalgorithm. %Reference:% J.KittlerandJ.Illingworth.MinimumErrorThresholding.Pattern% Recognition.1986.19(1):41-47 MAXD=100000;imag=imag(:,:,1);[counts,x]=imhist(imag); %countsarethehistogram.xistheintensitylevel.GradeI=length(
5、x); %theresolusionoftheintensity.i.e.256foruint8.J_t=zeros(GradeI,1); %criterionfunctionprob=counts./sum(counts); %ProbabilitydistributionmeanT=x'*prob; %Totalmeanlevelofthepicture%Initializationw0=prob(1); %ProbabilityofthefirstclassmiuK=0; %First-ordercumulativemomentsofthehistogra
6、muptothekthlevel.J_t(1)=MAXD;n=GradeI-1;fori=1:n w0=w0+prob(i+1); miuK=miuK+i*prob(i+1); %first-ordercumulativemoment if(w07、
8、(w0>1-eps) J_t(i+1)=MAXD; %T=i else miu1=miuK/w0; miu2=(meanT-miuK)/(1-w0); var1=(((0:i)'-miu1).^2)'*prob(1:i+1); var
9、1=var1/w0; %variance var2=(((i+1:n)'-miu2).^2)'*prob(i+2:n+1); var2=var2/(1-w0); ifvar1>eps&&var2>eps %incaseofvar1=0orvar2=0 J_t(i+1)=1+w0*log(var1)+(1-w0)*log(var2)-2*w0*log(w0)-2*(1-w0)*log(1-w0); else J_t(i+1)=MAXD; end e