Halcom 发表于 2018-3-24 13:48:09

ostu法图像分割

主函数:
global ImageGray
hist = imhist(ImageGray)./(size(ImageGray,1)*size(ImageGray,2));% 直方图
for i=1:256
    fit(i) = image_segmentation_ostu(hist,i);% Ostu
end
= max(fit);
bw = ImageGray > thre;   % 二值化操作子函数:
function y = image_segmentation_ostu( hist, thre )
% 最大类间方差法
Lmax = 256;

y = 0;
p1 = 0; p2=0; p3 =0; p4 =0; p5=0;

for i=1:Lmax
    p1 = p1+i*hist(i);
    if i<thre
      p2 = p2 + hist(i);
    else
      p3 = p3 + hist(i);
    end
end

for i=1:Lmax
    if i<thre
      p4 = p4 + i*hist(i)/p2;
    else
      p5 = p5 + i*hist(i)/p3;
    end
end

y = p2*(p4-p1)*(p4-p1);
y = y+p3*(p5-p1)*(p5-p1);



页: [1]
查看完整版本: ostu法图像分割