大津算法

  • 格式:txt
  • 大小:1.12 KB
  • 文档页数:1
p=st; q=nd-st;
u=0;
for i=1:q
u=u+f(i)*(p+i); %图像的灰度均值
% ua(q-i+1)=u;
ua(i)=u;
end;
for i=1:q
w(i)=sum(f(1:i)) %不同灰度值下的概率,可以认为是前景的概率
[m,n]=size(a);
N=m*n;
L=256;
count=count/N; %每一灰度级在总像素点中所占比例
for i=1:L
if count(i)~=0 %如果那点的灰度值不为0,就是为了找到最小灰度值
st=i-1;
%function th=thresh_md(a);
close all;
clear all;
clc;
a=dicomread('im1.dcm');
%a=rgb2gray(x);
figure,
imshow(a,[])
count=imhist(a);%把每一灰度值的像素点的个数存入count
end; ຫໍສະໝຸດ d=(u*w-ua).^2./(w.*(1-w)) %求类间方差
[y,tp]=max(d); %公式求得的最大值给y,灰度值给tp
th=tp+p %th就是要找的阈值
for i=1:m
for j=1:n
break;
end
end
for i=L:-1:1 %L到1,逐级递减,为了找到最大的灰度值
if count(i)~=0
nd=i-1;
break;
end
end
f=count(st+1:nd+1); %在最小值到最大值的像素区间里,将各个像素点的比例赋给f
if a(i,j)>th
a(i,j)=0;
else
a(i,j)=255;
end
end
end
figure,
imshow(a,[])

下载文档原格式

  / 1