otsu_threshold.m

来自「这是本人下载和编译过的关于大津法二值化的matlab代码」· M 代码 · 共 23 行

M
23
字号
%--------------------------------------------------------------------------
%get the threshold t of binary image 
%otsu_threshold
%implements otsu's thresholding method
%--------------------------------------------------------------------------
function t = otsu_threshold(img)
    %obtain probability
    [ht,wt] = size(img);
    [p,x]   = imhist(img,256);
    p       = p/(ht*wt);
    w       = zeros(1,256);
    m       = zeros(1,256);
    w(1)    = p(1);
    m(1)    = p(1);
    for i = 2 : 256
        w(i) = w(i-1) + p(i);
        m(i) = i*p(i) + m(i-1);
    end
    mt      = m(end);
    w       = w+eps;
    sigma_b = ((mt*w-m).^2)./(w.*(1-w));
    t       = find(sigma_b == max(sigma_b));
    t       = x(t(1));

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?