matlab 反向二值化_Matlab图像二值化程序

该博客介绍了如何使用Matlab进行反向二值化操作,通过迭代最佳阈值分割算法找到合适的阈值。首先读取bmp图像,然后计算图像的最大和最小灰度值,设置初始阈值。接着,通过迭代更新阈值以达到最佳分割效果。最终,对图像进行二值化处理,并应用细化算法改善边缘效果。示例代码详细展示了整个过程。
摘要由CSDN通过智能技术生成

I = imread('C:/Users/zhao4/Desktop/Kalibrierung/连续激光/name_L/bmp9.bmp');

figure,imshow(I)

[x,y]=size(I); % 求出图象大小

b=double(I);

z0=max(max(max(I))); % 求出图象中最大的灰度

z1=min(min(min(I))); % 最小的灰度

T=(z0+z1)/2; % T赋初值,为最大值和最小值的平均值

TT=0; %TT赋初值

S0=0.0; n0=0.0; %为计算灰度大于阈值的元素的灰度总值、个数赋值

S1=0.0; n1=0.0; %为计算灰度小于阈值的元素的灰度总值、个数赋值

allow=50; % 新旧阈值的允许接近程度

d=abs(T-TT);

count=0; % 记录几次循环

while(d&gt=allow) % 迭代最佳阈值分割算法

count=count+1;

for i=1:x,

for j=1:y,

if I(i,j)&gt=T,

S0=S0+b(i,j);

n0=n0+1;

end

if I(i,j)&ltT,

S1=S1+b(i,j);

n1=n1+1;

end

end

end

T0=S0/n0;

T1=S1/n1;

TT=(T0+T1)/2; %在阈值T下,迭代阈值的计算过程

d=abs(T-TT);

T=TT;

end

S0

i1=im2bw(I,T/255); % 图像在最佳阈值下二值化

figure,imshow(i1)

i2=bwperim(i1); % 图像细化过程

figure,imshow(i2)

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值