计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

基于模糊理论的图像分割算法研究(11)

2013-07-28 01:28
导读:(scale)); lb(scale) = log( abs(lb(scale)) ); ub(scale) = log( abs(ub(scale)) ); delta = ub - lb; Prec = .5 .^ len; num = (~lin) .* Prec; den = (lin + uin - 1) .* Prec; for i = 1:Nvar, idx = li(i):lf(i
(scale));

lb(scale) = log( abs(lb(scale)) );

ub(scale) = log( abs(ub(scale)) );

delta = ub - lb;

Prec = .5 .^ len;

num = (~lin) .* Prec;

den = (lin + uin - 1) .* Prec;

for i = 1:Nvar,

    idx = li(i):lf(i);

    if code(i) % Gray decoding

           Chrom(:,idx)=rem(cumsum(Chrom(:,idx)')',2);

    end

    Phen(:,i) = Chrom(:,idx) * [ (.5).^(1:len(i))' ];

    Phen(:,i) = lb(i) + delta(i) * (Phen(:,i) + num(i)) ./ (1 - den(i));

end

expand = ones(Nind,1);

if any(scale)

       Phen(:,scale) = logsgn(expand,:) .* exp(Phen(:,scale));

end

附录 四

适应度函数target源代码:

function f=target(T,M)                     %适应度函数,T为待处理图像,M为域值序列

[U, V]=size(T);

W=, , length(M);

f=zeros(W,1);

for k=1:W

    I=0;s1=0;J=0;s2=0;                     %目标图像和背景图像的像素数及像素之和

    for i=1:U

        for j=1:V

            if T(i,j)<=M(k)

                s1=s1+T(i,j);I=I+1;

            end

            if T(i,j)>M(k)

                s2=s2+T(i,j);J=J+1;

            end

        end

    end

    if I==0,  p1=0;  else p1=s1/I; end

    if J==0,  p2=0;  else p2=s2/J; end

    f(k)=I*J*(p1-p2)*(p1-p2)/(256*256);

end

附录 五

选择函数Select源代码:(由谢菲尔德大学Hartmut Pohlheim编写)

% SELECT.M          (universal SELECTion)

%

% This function performs universal selection. The function handles

% multiple populations and calls the low level selection function

% for the actual selection process.

%

% Syntax:  SelCh = select(SEL_F, Chrom, FitnV, GGAP, SUBPOP)

%

% Input parameters:

%    SEL_F     - Name of the selection function

%    Chrom     - Matrix containing the individuals (parents) of the current

%                population. Each row corresponds to one individual.

%    FitnV     - Column vector containing the fitness values of the

%                individuals in the population.

%    GGAP      - (optional) Rate of individuals to be selected

%                if omitted 1.0 is assumed

%    SUBPOP    - (optional) Number of subpopulations

%                if omitted 1 subpopulation is assumed

%

% Output parameters:

%    SelCh     - Matrix containing the selected individuals.

% Author:     Hartmut Pohlheim

% History:    10.03.94     file created

function SelCh = select(SEL_F, Chrom, FitnV, GGAP, SUBPOP);

% Check parameter consistency

   if nargin < 3, error('Not enough input parameter'); end

   % Identify the population size (Nind)

   [NindCh,Nvar] = size(Chrom);

   [NindF,VarF] = size(FitnV);

   if NindCh ~= NindF, error('Chrom and FitnV disagree'); end

   if VarF ~= 1, error('FitnV must be a column vector'); end

   if nargin < 5, SUBPOP = 1; end

   if nargin > 4,

      if isempty(SUBPOP), SUBPOP = 1;

      elseif isnan(SUBPOP), SUBPOP = 1;

      elseif length(SUBPOP) ~= 1, error('SUBPOP must be a scalar'); end

   end

   if (NindCh/SUBPOP) ~= fix(NindCh/SUBPOP), error('Chrom and SUBPOP disagree'); end

   Nind = NindCh/SUBPOP;  % Compute number of individuals per subpopulation

   if nargin < 4, GGAP = 1; end

   if nargin > 3,

      if isempty(GGAP), GGAP = 1;

      elseif isnan(GGAP), GGAP = 1;

      elseif length(GGAP) ~= 1, error('GGAP must be a scalar');

      elseif (GGAP < 0), error('GGAP must be a scalar bigger than 0'); end

   end

% Compute number of new individuals (to select)

   NSel=max(floor(Nind*GGAP+.5),2);

% Select individuals from population

   SelCh = [];

   for irun = 1:SUBPOP,

      FitnVSub = FitnV((irun-1)*Nind+1:irun*Nind);

      ChrIx=feval(SEL_F, FitnVSub, NSel)+(irun-1)*Nind;

      SelCh=[SelCh; Chrom(ChrIx,:)];

   end

 

% End of function

附录 六

交叉函数recombin的源代码:(由谢菲尔德大学Hartmut Pohlheim编写)

% RECOMBIN.M       (RECOMBINation high-level function)

%

% This function performs recombination between pairs of individuals

% and returns the new individuals after mating. The function handles

% multiple populations and calls the low-level recombination function

% for the actual recombination process.

%

% Syntax:  NewChrom = recombin(REC_F, OldChrom, RecOpt, SUBPOP)

%

% Input parameters:

%    REC_F     - String containing the name of the recombination or

%                crossover function

%    Chrom     - Matrix containing the chromosomes of the old

%                population. Each line corresponds to one individual

上一篇:计算机多媒体技术应用分析 下一篇:没有了