Filename= '填寫您的圖片名稱'
I=imread(文件名);
I _ gray = RGB 2 gray(I);
I _ double = double(I _ gray);%轉換為雙精度
[wid,len]= size(I _ gray);
colorlevel = 256%灰度級
hist=zeros(colorlevel,1);%直方圖
%計算直方圖
對於i=1:高度
對於j=1:寬度
m=I_gray(i,j)+1;
hist(m)= hist(m)+1;
結束
結束
hist=hist/(高度*寬度);%直方圖標準化
miuT = 0;
對於m=1:顏色級別
miuT = miuT+(m-1)* hist(m);
結束
xig mab 2 = 0;
for mindex=1:colorlevel
閾值= mindex-1;
omega 1 = 0;
ω2 = 0;
對於m=1:閾值-1
omega 1 = omega 1+hist(m);
結束
omega 2 = 1-omega 1;
miu 1 = 0;
miu 2 = 0;
對於m=1:顏色級別
如果m & lt閾值
miu 1 = miu 1+(m-1)* hist(m);
其他
miu 2 = miu 2+(m-1)* hist(m);
結束
結束
miu 1 = miu 1/omega 1;
miu 2 = miu 2/omega 2;
xigmab21=omega1*(miu1-miut)^2+omega2*(miu2-miut)^2;
xig ma(mindex)= xig mab 21;
如果xigmab 21 & gt;xigmaB2
finalT =閾值;
xigmab 2 = xigmab 21;
結束
結束
threshT = finalT
對於i=1:高度
對於j=1:寬度
if I_double(i,j)>最後
bin(i,j)= 1;
其他
bin(i,j)= 0;
結束
結束
結束
圖(1);im show(uint 8(bin));