⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 otsu-最大类间方差matlab代码.m

📁 Otsu-最大类间方差Matlab代码 最大类间方差法原理:最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背
💻 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 + -