资源描述:
《基于matlab的数字图像处理之图像阈值分割算法研究.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Matlab数字图像处理实践报告实践三:图像阈值分割算法研究3.1.1迭代法实践代码:clc;clearall;f=imread('cat.bmp');f=rgb2gray(f);f=im2double(f);T=0.5*(min(f(:))+max(f(:)));done=false;while~doneg=f>=T;Tn=0.5*(mean(f(g))+mean(f(~g)));done=abs(T-Tn)<0.1;T=Tn;endTr=im2bw(f,T);subplot(121),imshow(f),title
2、('原图');subplot(122),imshow(r),title('阈值分割算法研究--迭代法');3.1.2迭代法实践截图:3.2.1均匀性度量法实践代码:clc;clearall;I=imread('cat.bmp');I=rgb2gray(I);I=double(I);[m,n]=size(I);Smin=-1;forT=0:255sum1=0;num1=0;sum2=0;num2=0;fori=1:mforj=1:nifI(i,j)>=Tsum2=sum2+I(i,j);num2=num2+1;elsesum
3、1=sum1+I(i,j);num1=num1+1;endendendave1=sum1/num1;ave2=sum2/num2;d1=-1;d2=-1;fori=1:mforj=1:nifI(i,j)>=Td=(I(i,j)-ave2)^2;ifd2==-1d2=d;elsed2=d2+d;endelsed=(I(i,j)-ave1)^2;ifd1==-1d1=d;elsed1=d1+d;endendendendp1=num1/(m*n);p2=num2/(m*n);S=p1*d1+p2*d2;if(Smin==-1)S
4、min=S;elseif(S=ThI(i,j)=255;elseI(i,j)=0;endendendsubplot(122),imshow(I),title('阈值分割算法研究--均匀性度量法');3.2.2均匀性度量法实践截图:3.3.1类间最大距离法实践代码:clc;clearall;I=imread('cat.bmp');I=r
5、gb2gray(I);I=double(I);[m,n]=size(I);Smax=0;forT=0:255sum1=0;num1=0;sum2=0;num2=0;fori=1:mforj=1:nifI(i,j)>=Tsum2=sum2+I(i,j);num2=num2+1;elsesum1=sum1+I(i,j);num1=num1+1;endendendave1=sum1/num1;ave2=sum2/num2;S=((ave2-T)*(T-ave1))/(ave2-ave1)^2;if(S>Smax)Smax=S;T
6、h=T;endendThsubplot(121),imshow(uint8(I)),title('原图');fori=1:mforj=1:nifI(i,j)>=ThI(i,j)=255;elseI(i,j)=0;endendendsubplot(122),imshow(I),title('阈值分割算法研究--类间最大距离法');3.3.2类间最大距离法实践截图:3.4.1最大类内类间方差比法实践代码:clc;clearall;I=imread('cat.bmp');I=rgb2gray(I);I=double(I);[m,
7、n]=size(I);Smax=-1;forT=0:255sum1=0;num1=0;sum2=0;num2=0;fori=1:mforj=1:nifI(i,j)>=Tsum2=sum2+I(i,j);num2=num2+1;elsesum1=sum1+I(i,j);num1=num1+1;endendendave1=sum1/num1;ave2=sum2/num2;ave=(sum1+sum2)/(m*n);d1=-1;d2=-1;fori=1:mforj=1:nifI(i,j)>=Td=(I(i,j)-ave2)^2;
8、ifd2==-1d2=d;elsed2=d2+d;endelsed=(I(i,j)-ave1)^2;ifd1==-1d1=d;elsed1=d1+d;endendendendp1=num1/(m*n);p2=num2/(m*n);S1=p1*(ave1-ave)^2+p2*(ave2-ave)^2;S2