基于matlab的数字图像处理之图像阈值分割算法研究

上传人:野鹰 文档编号:15394849 上传时间:2017-11-04 格式:DOC 页数:9 大小:288.50KB
返回 下载 相关 举报
基于matlab的数字图像处理之图像阈值分割算法研究_第1页
第1页 / 共9页
基于matlab的数字图像处理之图像阈值分割算法研究_第2页
第2页 / 共9页
基于matlab的数字图像处理之图像阈值分割算法研究_第3页
第3页 / 共9页
基于matlab的数字图像处理之图像阈值分割算法研究_第4页
第4页 / 共9页
基于matlab的数字图像处理之图像阈值分割算法研究_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于matlab的数字图像处理之图像阈值分割算法研究》由会员分享,可在线阅读,更多相关《基于matlab的数字图像处理之图像阈值分割算法研究(9页珍藏版)》请在金锄头文库上搜索。

1、基于 Matlab 数字图像处理实践报告实践三: 图像阈值分割算法研究3.1.1 迭代法实践代码:clc;clear all;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)=Tsum2=sum2+I(i,j); num2=num2+1; else sum1=sum1+I(i,j); num1=num1+1; end end end ave1=sum1/num

2、1; ave2=sum2/num2;d1=-1;d2=-1;for i=1:mfor j=1:nif I(i,j)=Td=(I(i,j)-ave2)2;if d2=-1d2=d;elsed2=d2+d;endelsed=(I(i,j)-ave1)2;if d1=-1d1=d;elsed1=d1+d;endendendendp1=num1/(m*n);p2=num2/(m*n);S=p1*d1+p2*d2;if(Smin=-1)Smin=S; elseif(S=ThI(i,j)=255;elseI(i,j)=0;endendendsubplot(122),imshow(I),title(阈值分割

3、算法研究-均匀性度量法);3.2.2 均匀性度量法实践截图:3.3.1 类间最大距离法实践代码:clc;clear all;I=imread(cat.bmp);I=rgb2gray(I);I=double(I);m,n=size(I);Smax=0;for T=0:255 sum1=0; num1=0; sum2=0; num2=0; for i=1:mfor j=1:nif I(i,j)=Tsum2=sum2+I(i,j); num2=num2+1; else sum1=sum1+I(i,j); num1=num1+1; end end end ave1=sum1/num1; ave2=su

4、m2/num2;S=(ave2-T)*(T-ave1)/(ave2-ave1)2;if(SSmax)Smax=S;Th=T;endendThsubplot(121),imshow(uint8(I),title(原图);for i=1:mfor j=1:nif I(i,j)=ThI(i,j)=255;elseI(i,j)=0;endendendsubplot(122),imshow(I),title(阈值分割算法研究-类间最大距离法);3.3.2 类间最大距离法实践截图:3.4.1 最大类内类间方差比法实践代码:clc;clear all;I=imread(cat.bmp);I=rgb2gray

5、(I);I=double(I);m,n=size(I);Smax=-1;for T=0:255sum1=0; num1=0; sum2=0; num2=0; for i=1:mfor j=1:nif I(i,j)=Tsum2=sum2+I(i,j); num2=num2+1; else sum1=sum1+I(i,j); num1=num1+1; end end endave1=sum1/num1; ave2=sum2/num2;ave=(sum1+sum2)/(m*n);d1=-1;d2=-1;for i=1:mfor j=1:nif I(i,j)=Td=(I(i,j)-ave2)2; if

6、 d2=-1d2=d;elsed2=d2+d;endelsed=(I(i,j)-ave1)2;if d1=-1d1=d;elsed1=d1+d;endendendendp1=num1/(m*n);p2=num2/(m*n);S1=p1*(ave1-ave)2+p2*(ave2-ave)2;S2=p1*d1+p2*d2;S=S1/S2;if SSmaxSmax=S;Th=T;endendThsubplot(121),imshow(uint8(I),title(原图);for i=1:mfor j=1:nif I(i,j)=ThI(i,j)=255;elseI(i,j)=0;endendendsu

7、bplot(122),imshow(I),title(阈值分割算法研究-最大类内类间方差比法);3.4.2 最大类内类间方差比法实践截图:3.5.1 最大熵法实践代码:clc;clear all;I=imread(cat.bmp);I=rgb2gray(I);subplot(121),imshow(I);title(原始图像);h=imhist(I); h1=h;len=length(h); m,n=size(I); h1=h1/(m*n); for i=1:(len-1)if h(i)=0P1=sum(h1(1:i);P2=sum(h1(i+1):len);else continue;end

8、H1(i)=-(sum(P1.*log(P1);H2(i)=-(sum(P2.*log(P2);H(i)=H1(i)+H2(i);endm1=max(H);Th=find(H=m1);Thfor i=1:mfor j=1:nif I(i,j)=ThI(i,j)=255;elseI(i,j)=0; endendendsubplot(122),imshow(I);title(阈值分割算法研究-最大熵法);3.5.2 最大熵法实践截图:3.6.1 局部阈值实践代码:clc;clear all;I=imread(cat.bmp);I=rgb2gray(I);I=im2double(I);subplot(121),imshow(I),title(原图); se=strel(disk,10);ft=imtophat(I,se);Th=graythresh(ft); ThG=im2bw(ft,Th); subplot(122),imshow(G),title(局部阈值);3.6.2 局部阈值实践截图:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号