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

📄 thresh_md.asv

📁 用matlab编写的采用遗传算法进行图像分割的一个程序
💻 ASV
字号:

% function thresh_md(a)
tic;
a=imread('kids.tif');
% a=rgb2gray(A);
%  该函数实现最大方差法计算分割门限。
%  输入参数为灰度图像,输出为灰度分割门限
count1=imhist(a);
%  返回图像矩阵a各个灰度等级象素个数。
[m,n]=size(a);
gs=find(a==0);
mm=size(gs)
N=m*n-sum(sum(find(a==0),1));

L=256;
%  指定图像灰度等级为256级。
%  d=std2((double(a)+1)/N)
%  err=0.003;
count=count1/N;
%  计算出个灰度出现的概率。
for i=2:L
    if count(i)~=0
        st=i-1;
        break
    end
end
%   找出概率不为0的最小灰度。
for i=L:-1:1
    if count(i)~=0;
        nd=i-1;
        break;
    end
end
%  找出概率不为0的最大灰度。
f=count(st+1:nd+1);
p=st;q=nd-st;
%   p和q分别为灰度起始和结束值。
u=0;
for i=1:q
    u=u+f(i)*(p+i-1);
    ua(i)=u;
end
%  计算图像的平均灰度。
for i=1:q
    w(i)=sum(f(1:i));
end
%  计算出选择不同k值时,A区域的概率。
d=(u*w-ua).^2./(w.*(1-w));
%  求出不同k值时类间的方差
[y,tp]=max(d);
%  求出最大方差对应的灰度级
th=tp+p;
toc

⌨️ 快捷键说明

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