收藏 分销(赏)

毕业论文-基于基于遗传算法的医学图像研究程序清单(终稿).doc

上传人:可**** 文档编号:2686611 上传时间:2024-06-04 格式:DOC 页数:15 大小:56.50KB 下载积分:10 金币
下载 相关 举报
毕业论文-基于基于遗传算法的医学图像研究程序清单(终稿).doc_第1页
第1页 / 共15页
毕业论文-基于基于遗传算法的医学图像研究程序清单(终稿).doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
淮阴工学院大学生科技实践计划项目 第 15 页 共15 页 附 录 附录 一 灰度直方图双峰法分割源代码 clear, close all B=imread('2.jpg');                                            %读入原始jpg格式图像 figure(1); imshow(B),title('原始jpg格式图像'); I1=rgb2gray(B);                                                 %将原图像转化为灰度图象 figure(2); imshow(I1),title('灰度格式图像'); [I1,map1]=gray2ind(I1,255);                                     %将灰度图像转化为索引图像 figure(3), imhist(I1)                                           %画出灰度直方图,以判断域值  I1=double(I1);                                                  %将unit8数组转化为double型数组  Z=I1                                                           %将double型数组I1转存到Z中 [m, n]=size(Z); for i=1:m     for j=1:n         if Z(i,j)>240                                          %灰度值大于域值时是白色             Z(i,j)=256;         end     end end figure(4)                                                      %画出分割后目标图像 image(Z),title('分割后图像');colormap(map1); 图像I图像格式转化及灰度直方图双峰法分割源代码 clear, close all B=imread('she.jpg');                                       %读入原始jpg格式图像she figure(1); imshow(B),title('原始jpg格式图像'); I1=rgb2gray(B);                                          %将原图像转化为灰度图象 figure(2); imshow(I1),title('灰度格式图像'); [I1,map1]=gray2ind(I1,255);                              %将灰度图像转化为索引图像 figure(3), imhist(I1)                                    %画出灰度直方图,以判断域值  I1=double(I1);                                    %将unit8数组转化为double型数组  Z=I1                                             %将double型数组I1转存到Z中 [m, n]=size(Z); for i=1:m     for j=1:n         if Z(i,j)>240                                     %灰度值大于域值时是白色             Z(i,j)=256;         end     end end figure(4)                                                    %画出分割后目标图像 image(Z),title('分割后图像');colormap(map1); 图像II图像格式转化及灰度直方图双峰法分割源代码 clear, close all B=imread('she.jpg');                                      %读入原始jpg格式图像月亮 figure(1); imshow(B),title('原始jpg格式图像'); I1=rgb2gray(B);                                          %将原图像转化为灰度图象 figure(2); imshow(I1),title('灰度格式图像'); [I1,map1]=gray2ind(I1,255);                              %将灰度图像转化为索引图像 figure(3), imhist(I1)                                    %画出灰度直方图,以判断域值  I1=double(I1);                                    %将unit8数组转化为double型数组  Z=I1                                             %将double型数组I1转存到Z中 [m, n]=size(Z); for i=1:m     for j=1:n         if Z(i,j)>240                                     %灰度值大于域值时是白色             Z(i,j)=256;         end     end end figure(4)                                                    %画出分割后目标图像 image(Z),title('分割后图像');colormap(map1); 附录 二 Crtbp 函数源代码:(由谢菲尔德大学Andrew Chipperfield编写) % CRTBP.m - Create an initial population% % This function creates a binary population of given size and structure. % % Syntax: [Chrom Lind BaseV] = crtbp(Nind, Lind, Base) % % Input Parameters: % %           Nind       - Either a scalar containing the number of individuals %                    in the new population or a row vector of length two %                    containing the number of individuals and their length. % %           Lind     - A scalar containing the length of the individual %                    chromosomes. % %           Base    - A scalar containing the base of the chromosome %                    elements or a row vector containing the base(s) %                    of the loci of the chromosomes. % % Output Parameter[来源:论文 s: % %           Chrom    - A matrix containing the random valued chromosomes %                      row wise. % %           Lind -  A scalar containing the length of the chromosome. % %           BaseV     - A row vector containing the base of the %                     chromosome loci. % Author: Andrew Chipperfield % Date:   19-Jan-94 function [Chrom, Lind, BaseV] = crtbp(Nind, Lind, Base) nargs = nargin ; % Check parameter consistency if nargs >= 1, [mN, nN] = size(Nind) ; end if nargs >= 2, [mL, nL] = size(Lind) ; end if nargs == 3, [mB, nB] = size(Base) ; end if nN == 2    if (nargs == 1)       Lind = Nind(2) ; Nind = Nind(1) ; BaseV = crtbase(Lind) ;    elseif (nargs == 2 & nL == 1)       BaseV = crtbase(Nind(2),Lind) ; Lind = Nind(2) ; Nind = Nind(1) ;    elseif (nargs == 2 & nL > 1)       if Lind ~= length(Lind), error('Lind and Base disagree'); end       BaseV = Lind ; Lind = Nind(2) ; Nind = Nind(1) ;    end elseif nN == 1    if nargs == 2       if nL == 1, BaseV = crtbase(Lind) ;       else, BaseV = Lind ; Lind = nL ; end    elseif nargs == 3       if nB == 1, BaseV = crtbase(Lind,Base) ;       elseif nB ~= Lind, error('Lind and Base disagree') ;       else BaseV = Base ; end    end else    error('Input parameters inconsistent') ; end % Create a structure of random chromosomes in row wise order, dimensions % Nind by Lind. The base of each chromosomes loci is given by the value % of the corresponding element of the row vector base. Chrom = floor(rand(Nind,Lind).*BaseV(ones(Nind,1),:)) ; % End of file 附录 三 Bs2rv函数源代码:  (由谢菲尔德大学Andrew Chipperfield编写) % BS2RV.m - Binary string to real vector % % This function decodes binary chromosomes into vectors of reals. The % chromosomes are seen as the concatenation of binary strings of given % length, and decoded into real numbers in a specified interval using % either standard binary or Gray decoding. % % Syntax:       Phen = bs2rv(Chrom,FieldD) % % Input parameters: % %               Chrom    - Matrix containing the chromosomes of the current %                          population. Each line corresponds to one %                          individual's concatenated binary string %                     representation. Leftmost bits are MSb and %                     rightmost are LSb. % %               FieldD   - Matrix describing the length and how to decode %                     each substring in the chromosome. It has the %                     following structure: % %                         [len;        (num) %                         lb;         (num) %                         ub;        (num) %                         code;            (0=binary     | 1=gray) %                         scale;           (0=arithmetic | 1=logarithmic) %                         lbin;             (0=excluded   | 1=included) %                         ubin];           (0=excluded   | 1=included) % %                     where %                         len   - row vector containing the length of %                                each substring in Chrom. sum(len) %                                should equal the individual length. %                         lb, %                         ub    - Lower and upper bounds for each %                                variable. %                         code  - binary row vector indicating how each %                                substring is to be decoded. %                         scale - binary row vector indicating where to %                                use arithmetic and/or logarithmic %                                scaling. %                         lbin, %                         ubin  - binary row vectors indicating whether %                                or not to include each bound in the %                                representation range % % Output parameter: % %               Phen     - Real matrix containing the population phenotypes. % % Author: Carlos Fonseca,   Updated: Andrew Chipperfield % Date: 08/06/93,         Date: 26-Jan-94 function Phen = bs2rv(Chrom,FieldD) % Identify the population size (Nind) %      and the chromosome length (Lind) [Nind,Lind] = size(Chrom); % Identify the number of decision variables (Nvar) [seven,Nvar] = size(FieldD); if seven ~= 7        error('FieldD must have 7 rows.'); end % Get substring properties len = FieldD(1,:); lb = FieldD(2,:); ub = FieldD(3,:); code = ~(~FieldD(4,:)); scale = ~(~FieldD(5,:)); lin = ~(~FieldD(6,:)); uin = ~(~FieldD(7,:)); % Check substring properties for consistency if sum(len) ~= Lind,        error('Data in FieldD must agree with chromosome length'); end if ~all(lb(scale).*ub(scale)>0)        error('Log-scaled variables must not include 0 in their range'); end % Decode chromosomes Phen = zeros(Nind,Nvar); lf = cumsum(len); li = cumsum([1 len]); Prec = .5 .^ len; logsgn = sign(lb[来源:论文 (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 %    RecOpt    - (optional) Scalar containing the probability of %                recombination/crossover occurring between pairs %                of individuals. %                if omitted or NaN, 1 is assumed %    SUBPOP    - (optional) Number of subpopulations %                if omitted or NaN, 1 subpopulation is assumed % % Output parameter: %    NewChrom  - Matrix containing the chromosomes of the population %                after recombination in the same format as OldChrom. %  Author:    Hartmut Pohlheim %  History:   18.03.94     file created function NewChrom = recombin(REC_F, Chrom, RecOpt, SUBPOP); % Check parameter consistency    if nargin < 2, error('Not enough input parameter'); end    % Identify the population size (Nind)    [Nind,Nvar] = size(Chrom);      if nargin < 4, SUBPOP = 1; end    if nargin > 3,       if isempty(SUBPOP), SUBPOP = 1;       elseif isnan(SUBPOP), SUBPOP = 1;       elseif length(SUBPOP) ~= 1, error('SUBPOP must be a scalar'); end    end    if (Nind/SUBPOP) ~= fix(Nind/SUBPOP), error('Chrom and SUBPOP disagree'); end    Nind = Nind/SUBPOP;  % Compute number of individuals per subpopulation    if nargin < 3, RecOpt = 0.7; end    if nargin > 2,       if isempty(RecOpt), RecOpt = 0.7;       elseif isnan(RecOpt), RecOpt = 0.7;       elseif length(RecOpt) ~= 1, error('RecOpt must be a scalar');       elseif (RecOpt < 0 | RecOpt > 1), error('RecOpt must be a scalar in [0, 1]'); end    end % Select individuals of one subpopulation and call low level function    NewChrom = [];    for irun = 1:SUBPOP,       ChromSub = Chrom((irun-1)*Nind+1:irun*Nind,:);        NewChromSub = feval(REC_F, ChromSub, RecOpt);       NewChrom=[NewChrom; NewChromSub];    end % End of function 附录 七 变异函数mut源代码 :(由谢菲尔德大学Andrew Chipperfield编写) % MUT.m % % This function takes the representation of the current population, % mutates each element with given probability and returns the resulting % population. % % Syntax:       NewChrom = mut(OldChrom,Pm,BaseV) % % Input parameters: % %           OldChrom - A matrix containing the chromosomes of the %                     current population. Each row corresponds to %                     an individuals string representation. % %           Pm  - Mutation probability (scalar). Default value %                     of Pm
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服