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

上传人:沧海****B 文档编号:91491680 上传时间:2023-05-27 格式:DOC 页数:15 大小:56.50KB
返回 下载 相关 举报
基于基于遗传算法的医学图像研究程序清单(终稿).doc_第1页
第1页 / 共15页
基于基于遗传算法的医学图像研究程序清单(终稿).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于基于遗传算法的医学图像研究程序清单(终稿).doc》由会员分享,可在线阅读,更多相关《基于基于遗传算法的医学图像研究程序清单(终稿).doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、淮阴工学院大学生科技实践计划项目 第 15 页 共15 页附 录 附录 一 灰度直方图双峰法分割源代码clear, close allB=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数组转化为do

2、uble型数组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 endendfigure(4) %画出分割后目标图像image(Z),title(分割后图像);colormap(map1);图像I图像格式转化及灰度直方图双峰法分割源代码clear, close allB=imread(she.jpg); %读入原始jpg格式图像shefigure(1);imshow(B),title(原始jpg格式图像);I1=rgb2gray(B); %将原图像转

3、化为灰度图象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 endendfigure(4) %画出分割后目标图像image(Z),title(分割后图像);co

4、lormap(map1);图像II图像格式转化及灰度直方图双峰法分割源代码clear, close allB=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=I

5、1 %将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 endendfigure(4) %画出分割后目标图像image(Z),title(分割后图像);colormap(map1);附录 二 Crtbp 函数源代码:(由谢菲尔德大学Andrew Chipperfield编写)% CRTBP.m - Create an initial population% This function creates a binary population of given si

6、ze 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

7、 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 le

8、ngth of the chromosome.% BaseV - A row vector containing the base of the % chromosome loci.% Author: Andrew Chipperfield% Date: 19-Jan-94function Chrom, Lind, BaseV = crtbp(Nind, Lind, Base)nargs = nargin ;% Check parameter consistencyif nargs = 1, mN, nN = size(Nind) ; endif nargs = 2, mL, nL = siz

9、e(Lind) ; endif nargs = 3, mB, nB = size(Base) ; endif 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 d

10、isagree); end BaseV = Lind ; Lind = Nind(2) ; Nind = Nind(1) ; endelseif 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 ende

11、lse 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),:) ;% En

12、d 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

13、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% individuals concatenated binary string% representation. Leftmost bits are MSb and% rightmost are

14、 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)% wh

15、ere% 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

16、 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,

17、 Date: 26-Jan-94function 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 propertieslen

18、= FieldD(1,:);lb = FieldD(2,:);ub = FieldD(3,:);code = (FieldD(4,:);scale = (FieldD(5,:);lin = (FieldD(6,:);uin = (FieldD(7,:);% Check substring properties for consistencyif sum(len) = Lind, error(Data in FieldD must agree with chromosome length);endif all(lb(scale).*ub(scale)0) error(Log-scaled var

19、iables must not include 0 in their range);end% Decode chromosomesPhen = 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

20、+ 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);endexpand = ones(Nind,1);if any(scale) Phen(:,scale) = logsgn(ex

21、pand,:) .* 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) 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;

22、 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

23、.% 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

24、% 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% H

25、istory: 10.03.94 file createdfunction 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 Fitn

26、V disagree); end if VarF = 1, error(FitnV must be a column vector); 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 Nin

27、d = NindCh/SUBPOP; % Compute number of individuals per subpopulation 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 (

28、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

29、编写)% 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.% Synt

30、ax: 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 containin

31、g 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% af

32、ter recombination in the same format as OldChrom.% Author: Hartmut Pohlheim% History: 18.03.94 file createdfunction 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 = si

33、ze(Chrom); 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 subpopulatio

34、n 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 1), error(RecOpt must be a scalar in 0, 1); end end% Select individuals of one subpopulation and call low level function NewChrom = ; for iru

35、n = 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 elemen

36、t 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com