資源簡介
一維OTSU算法及相應(yīng)的論文,希望對學(xué)習(xí)這方面的朋友有所幫。

代碼片段和文件信息
????function?ostu1
????%原始的一維otsu算法
????close?all;
????clear?all;
????tic;
????I_gray?=?imread(‘f:\學(xué)習(xí)\數(shù)字圖像處理\棉花布匹瑕疵檢測\棉花\MyTest\方智圖像庫\qiche.jpg‘);
????I_gray?=?rgb2gray(I_gray);
????figureimshow(I_gray);
????I_d?=?double(I_gray);%轉(zhuǎn)化為雙精度
????[widlen]?=?size(I_gray);
????graylevel?=?256;??%灰度級
?????%統(tǒng)計(jì)直方圖
????%?hist=imhist(I_gray_h);??????%灰度級出現(xiàn)的次數(shù)
????hist=zeros(graylevel1);???????%直方圖
????for?i=1:wid
????????for?j=1:len
????????????m=uint8(I_gray(ij))+1;????????%像素值,加1是因?yàn)閙作為索引不能為0
????????????hist(m)=hist(m)+1;??????%灰度級出現(xiàn)的次數(shù)
????????end
????end
????hist=hist/(wid*len);???????%直方圖歸一化灰度級出現(xiàn)的頻率
????%整幅圖像的均值
????miuT=0;
????for?m=1:graylevel
????????miuT=miuT+(m-1)*hist(m);
????end
????%遍歷所有灰度值求最佳閾值
????xigmaB2=0;
????for?k=2:graylevel
????????threshold=k-1;
????????%兩部分各自出現(xiàn)的概率
????????omega1=0;
????????miu1=0;
????????for?m=1:threshold???????????????
??????????????omega1=omega1+hist(m);
??????????????miu1=miu1+(m-1)*hist(m);
????????end
????????omega2=1-omega1;
????????miu2=miuT-miu1;
????????if?omega1==0||omega1==1?????%omeiga要做分母不能為0
????????????continue;
????????end
????????miu1=miu1/omega1;
????????miu2=miu2/omega2;
????????%最大類間方差的判斷
????%?????xigmaB=omega1*(miu1-miuT)^2+omega2*(miu2-miuT)^2;
????????xigmaB=omega1*omega2*(miu1-miu2)^2;
????????if?xigmaB>xigmaB2
????????????T=threshold;
????????????xigmaB2=xigmaB;
????????end
????end???????%閾值歸一化
????bin=zeros(widlen);
????for?i=1:wid
????????for?j=1:len
????????????if?I_d(ij)>T
????????????????bin(ij)=1;
????????????end
????????end
????end
????figureimshow(bin);
????toc;
????
????
????
%?%?全局變量(迭代閾值)
%?function??quanju
%?data=imread(‘f:\學(xué)習(xí)\數(shù)字圖像處理\棉花布匹瑕疵檢測\棉花\MyTest\方智圖像庫\houzi.jpg‘);
%?figureimshow(data);
%?data?=?rgb2gray(data);
%?T=0.5*(double(min(data(:)))+double(max(data(:))));%設(shè)計(jì)初始的估計(jì)值(此時(shí)如果沒有(:)的話,求出來的T是個(gè)向量而不是一個(gè)數(shù)值)
%?done=false;????%迭代完成標(biāo)志(意思是done=0)
%?while?~done???%迭代循環(huán)(done不為0就執(zhí)行下面的循環(huán)語句;done為0,~done不為0,當(dāng)done不為0時(shí),~done為0)
%?????g=data>=T;
%?????Tnext=0.5*(mean(data(g))+mean(data(~g)));???%兩范圍的均值
%?????done=abs(T-Tnext)<0.5;%迭代值與原來的閾值之差小于0.5,迭代結(jié)束(滿足此條件也直接結(jié)束循環(huán))
%?????T=Tnext;
%?end
%?figureimshow(g);
%?????
????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-12-06?21:54??一維OTSU\
?????文件?????3150870??2012-05-07?09:42??一維OTSU\04310076.pdf
?????文件????????2639??2012-09-15?15:33??一維OTSU\ostu1.asv
?????文件????????2497??2012-10-25?15:33??一維OTSU\ostu1.m
評論
共有 條評論