matlab等高分割_【优质】两个matlab实现最大熵法图像分割程序

%

两个程序,亲测可用

clear all

a=imread('moon.tif');

figure,imshow(a)

count=imhist(a);

[m,n]=size(a);

N=m*n;

L=256;

count=count/N;%%

每一个像素的分布概率

count

for i=1:L

if count(i)~=0

st=i-1;

break;

end

end

st

for i=L:-1:1

if count(i)~=0

nd=i-1;

break;

end

end

nd

f=count(st+1:nd+1);

%f

是每个灰度出现的概率

size(f)

E=[];

for Th=st:nd-1

%%%

设定初始分割阈值为

Th

av1=0;

av2=0;

Pth=sum(count(1:Th+1));

%%%

第一类的平均相对熵为

for i=0:Th

av1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001);

end

%%%

第二类的平均相对熵为

for i=Th+1:L-1

av2=av2-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.00001);

end

E(Th-st+1)=av1+av2;

end

position=find(E==(max(E)));

th=st+position-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值