function th=Multi_threshold(I)
H=imhist(I);
H=hist_smooth(H);
H=hist_smooth(H);
H=hist_smooth(H);
H=hist_smooth(H);
max1=0;
index1=0;
max2=0;
index2=0;
max3=0;
index3=0;
for i=2:255
if max1<=H(i)
if (H(i+1)-H(i))<0
if (H(i)-H(i-1))>0
max1=H(i);
index1=i;
end
end
end
end
for i=2:255
if max2<=H(i)
if (H(i+1)-H(i))<0
if (H(i)-H(i-1))>0
if i~=index1
max2=H(i);
index2=i;
end
end
end
end
end
for i=2:255
if max3<=H(i)
if (H(i+1)-H(i))<0
if (H(i)-H(i-1))>0
if i~=index1 & i~=index2
max3=H(i);
index3=i;
end
end
end
end
end
n(1)=index1;
n(2)=index2;
n(3)=index3;
n=sort(n);
min1=inf;
value1=0;
min2=inf;
value2=0;
for i=n(1):n(2)
if min1>=H(i)
if (H(i+1)-H(i))>=0
if (H(i)-H(i-1))<=0
min1=H(i);
value1=i;
end
end
end
end
for i=n(2):n(3)
if min2>=H(i)
if (H(i+1)-H(i))>=0
if (H(i)-H(i-1))<=0
min2=H(i);
value2=i;
end
end
end
end
th(1)=value1;
th(2)=value2;
评论0