資源簡介
最大類間方差法(OTSU)閾值分割的matlab實現
代碼片段和文件信息
%圖像OTSU閾值分割的程序設計
clear;??%清除系統變量
close?all;?%關閉所有打開的窗口
[name?path]=uigetfile(‘*.jpg‘);?%出現打開文件界面?
filename=[path?name];???????????%獲取文件的路徑與文件名
I=rgb2gray(imread(filename));?%??讀圖并轉化為黑白圖片
%以下為閾值計算程序
Ni=imhist(I);%計算直方圖數組
N=sum(Ni);???%總像素點個數
delamax=0;???%類間方差最大值
threshold=0;?%閾值
for?k=2:255
??u=dot([0:255]Ni/N);?%圖像的總平均灰度級
??w0=sum(Ni(1:k)/N);??%C0類像素所占面積的比例
??w1=1-w0;????????????%C1類像素所占面積的比例
??if?w0==0|w0==1??????%當w0為1或0時提前結束本次循環
?????continue?
??end
??u0=dot([0:k-1]Ni(1:k)/N)/w0;???%C0類像素的平均灰度
??u1=dot([k:255]Ni(k+1:256)/N)/w1;?%C1類像素的平均灰度
????dela(k)=w0*(u-u0)^2+w1*(u-u1)^2;??%類間方差公式
??%求出
- 上一篇:三分之一倍頻程matlab
- 下一篇:LDPC的BP譯碼matlab仿真
評論
共有 條評論