图像分割matlab阈值自动计算,求matlab图像直方图阈值分割算法(包含预处理步骤)...

在此提供两种方法,一,最大阈值分割(大律法):

I=imread('test.jpg');

subplot(1,3,1);imshow(I);title('原图');

I1=rgb2gray(I);

subplot(1,3,2);imhist(I1);title('直方图');

level=graythresh(I);

g=im2bw(I,level);%最佳阈值level

subplot(1,3,3);imshow(g);title('阈值分割');

%在Command窗口输出灰度阈值

disp(strcat('graythresh 计算灰度阈值:',num2str(uint8(level*255))))

第二种:迭代求阈值

I=imread('C:test.jpg');

Zmax=max(max(I));

Zmin=min(min(I));

TK=(Zmax+Zmin)/2;%初始阈值

flag=1;

[m,n]=size(I);

while(flag)

fg=0;

bg=0;

fgsum=0;

bgsum=0;

for i=1:m

for j=1:n

tmp=I(i,j);

if(tmp>=TK)

fg=fg+1;

fgsum=fgsum+double(tmp);

else

bg=bg+1;

bgsum=bgsum+double(tmp);

end

end

end

u1=fgsum/fg;

u2=bgsum/bg;

TKTmp=uint8((u1+u2)/2);

if(TKTmp==TK)

flag=0;

else

TK=TKTmp;

end

end

disp(strcat('迭代后的阈值:',num2str(TK)));

newI=im2bw(I,double(TK)/255);

subplot(1,2,1);imshow(I);title('原图')

subplot(1,2,2);imshow(newI);tltle('阈值分割图');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值