?? otsu-最大類間方差matlab代碼.m
字號:
% Otsu-最大類間方差Matlab代碼 最大類間方差法原理:最大類間方差法是由日本學者大津于1979年提出的,是一種自適應的閾值確定的方法,又叫大津法,簡稱OTSU。它是按圖像的灰度特性,將圖像分成背景和目標2 部分。背景和目標之間的類間方差
% 大,說明構成圖像的2 部分的差別越大,當部分目標錯分為背景或部分背景錯分為目標都會導致2 部
% 分差別變小。因此,使類間方差最大的分割意味著錯分概率最小。
% matlab代碼:
function th=thresh_md(a);
x=imread(a);
a=rgb2gray(x);
imshow(a)
count=imhist(a);
[m,n]=size(a);
N=m*n;
L=256;
count=count/N;
for i=1:L
if count(i)~=0
st=i-1;
break;
end
end
for i=L:-1:1
if count(i)~=0
nd=i-1;
break;
end
end
f=count(st+1:nd+1); %f是每個灰度出現的概率
p=st; q=nd-st;
u=0;
for i=1:q
u=u+f(i)*(p+i-1); %u是像素的平均值
ua(i)=u; %ua(i)是前i個像素的平均灰度值
end;
for i=1:q
w(i)=sum(f(1:i)); %w(i)是前i個像素的累加概率
end;
d=(u*w-ua).^2./(w.*(1-w));
[y,tp]=max(d); %可以取出數組的最大值及取最大值的點
th=tp+p;
for i=1:m
for j=1:n
if a(i,j)>th
a(i,j)=0;
else
a(i,j)=255;
end
end
end
imshow(a);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -