数字图像处理大作业-昆明理工大学-尚振宏(4)

2018-12-22 19:54

end end end

ave1=sum1/num1; ave2=sum2/num2;

S=((ave2-T)*(T-ave1))/(ave2-ave1)^2; if(S>Smax) Smax=S; Th=T; end end Th

figure,imshow(uint8(I)),title('原图'); for i=1:m for j=1:n

if I(i,j)>=Th I(i,j)=255; else

I(i,j)=0; end end end

figure,imshow(I),title('类间最大距离法');

7.3最大熵法代码

%最大熵法 clc;

clear all;

I=imread('dcs01.jpg'); I=rgb2gray(I);

figure,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)~=0

P1=sum(h1(1:i));

P2=sum(h1((i+1):len)); else

continue; end

15

H1(i)=-(sum(P1.*log(P1))); H2(i)=-(sum(P2.*log(P2))); H(i)=H1(i)+H2(i); end

m1=max(H);

Th=find(H==m1); Th

for i=1:m for j=1:n

if I(i,j)>=Th I(i,j)=255; else

I(i,j)=0; end end end

figure,imshow(I);title('最大熵法');

7.4最大类内类间方差比法代码%最大类内类间方差比法 clc;

clear all;

I=imread('dcs01.jpg'); I=rgb2gray(I); I=double(I); [m,n]=size(I); Smax=-1; for T=0:255

sum1=0; num1=0; sum2=0; num2=0; for i=1:m for j=1:n

if I(i,j)>=T

sum2=sum2+I(i,j);

num2=num2+1; else

sum1=sum1+I(i,j);

num1=num1+1; end end end

ave1=sum1/num1; ave2=sum2/num2;

ave=(sum1+sum2)/(m*n);

16

d1=-1; d2=-1; for i=1:m for j=1:n

if I(i,j)>=T

d=(I(i,j)-ave2)^2; if d2==-1 d2=d; else

d2=d2+d; end else

d=(I(i,j)-ave1)^2; if d1==-1 d1=d; else

d1=d1+d; end end end end

p1=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 S>Smax

Smax=S; Th=T; end end Th

figure,imshow(uint8(I)),title('原图'); for i=1:m for j=1:n

if I(i,j)>= Th I(i,j)=255; else

I(i,j)=0; end end end

figure,imshow(I),title('最大类内类间方差比法');

17

7.5局部阈值法代码

%局部阈值 clc;

clear all;

I=imread('dcs01.jpg'); I=rgb2gray(I); I=im2double(I);

figure,imshow(I),title('原图'); se=strel('disk',10); ft=imtophat(I,se);

Th=graythresh(ft); Th

G=im2bw(ft,Th); figure,imshow(G),title('局部阈值')

7.6均匀性度量法代码

%均匀性度量法 clc;

clear all;

I=imread('dcs01.jpg'); I=rgb2gray(I); I=double(I); [m,n]=size(I); Smin=-1;

for T=0:255

sum1=0; num1=0; sum2=0; num2=0; for i=1:m for j=1:n

if I(i,j)>=T

sum2=sum2+I(i,j); num2=num2+1; else

sum1=sum1+I(i,j); num1=num1+1; end end end

ave1=sum1/num1; ave2=sum2/num2; d1=-1; d2=-1; for i=1:m

18

for j=1:n

if I(i,j)>=T

d=(I(i,j)-ave2)^2; if d2==-1 d2=d; else

d2=d2+d; end else

d=(I(i,j)-ave1)^2; if d1==-1 d1=d; else

d1=d1+d; end end end end

p1=num1/(m*n); p2=num2/(m*n); S=p1*d1+p2*d2; if(Smin==-1) Smin=S; else

if(S

figure,imshow(uint8(I)),title('原图'); for i=1:m for j=1:n

if I(i,j)>=Th I(i,j)=255; else

I(i,j)=0; end end end

figure,imshow(I),title('均匀性度量法');

19


数字图像处理大作业-昆明理工大学-尚振宏(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:保险学的课程心得体会

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: