Matlab图像二值化程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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>=allow) % 迭代最佳阈值分割算法

count=count+1;

for i=1:x,

for j=1:y,

if I(i,j)>=T,

S0=S0+b(i,j);

n0=n0+1;

end

if I(i,j)
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)

相关文档
最新文档