资源简介
基于水平集的活动轮廓(image segmentation based on active contour model),包括LBF模型和LDF模型,matlab程序,用于实现图像分割,亲自调试通过
代码片段和文件信息
function [mu1 mu2] = GMM_PSO(data); %data 是行向量
nbStates=2;
len_data=length(data);
%%%%%%%%%%%%%%-PSO-%%%%%%%%%%%%%%%%
wmax=1;
wmin=0;
itmax=50;
c1=2;
c2=2;
for iter=1:itmax
W(iter)=wmax-((wmax-wmin)/itmax)*iter;
end
%initialization of positions of agents
a=min(data);%参数最小值
b=max(data);%参数最大值
N=50;%粒子数
D=2;%参数个数
% tcl=0.05;
x=[];vmfit=[];
% f=‘x.*sin(4*pi.*x)-y.*sin(4*pi.*y+pi+1)‘;%待优化函数
% [xy]=meshgrid(a:tcl:ba:tcl:b);
% vxp=x;
% vyp=y;
% vzp=eval(f);
x=a+(b-a)*rand(ND1);%第一代粒子位置随机生成,N代表粒子数,D代表参数个数,1代表第一代
%initialization of velocities of agents
V=wmin+(wmax-wmin)*rand(ND1);%第一代粒子速度随机生成
for i=1:N
%%%%%%%%%%%%%%%%%%%%%%%%%%
mu1=x(i11);
mu2=x(i21);
%
P_omiga1_I=ones(1len_data)-(abs(data-x(i11))./(abs(data-x(i11))+abs(data-x(i21))+eps));
P_omiga2_I=ones(1len_data)-(abs(data-x(i21))./(abs(data-x(i11))+abs(data-x(i21))+eps));
%
P1=sum(P_omiga1_I(:))/len_data;%先验概率
P2=sum(P_omiga2_I(:))/len_data;
%
aa=P_omiga1_I.*abs(data-mu1);
bb=P_omiga2_I.*abs(data-mu2);
%
cita1=sqrt(sum(aa(:))/sum(P_omiga1_I(:)));%方差
cita2=sqrt(sum(bb(:))/sum(P_omiga2_I(:)));
%%%%%%%%%%%%%%%%%%MLE为一个行向量%%%%%%%%%%%%%%%%%%%%%%%
MLE=log(P1/(sqrt(2*pi)*cita1+eps).*exp(-(data-mu1).^2/(2*cita1^2+eps))+P2/(sqrt(2*pi)*cita2+eps).*exp(-(data-mu2).^2/(2*cita2^2+eps))+eps);
F(i11)=sum(MLE(:));
end
% media=mean(F(:11));
% vmfit=[vmfit media];
[CI]=max(F(:11));%求取第一代粒子中适应度最大的粒子,I为最大值C在F中的位置
B(111)=C;
gbest(111)=x(I11);
gbest(121)=x(I21);%第一代的最大值也就是目前整个种群找到的最优解,这个极值是全局最优极值gbest
% matrix composed of gbest vector
for p=1:N
for r=1:D
G(pr1)=gbest(1r1);%整个种群目前找到的最优解
end
end
Fbest(111)=C;
%把前一代的最优值保存起来
for i=1:N
pbest(i:1)=x(i:1);%第一代本身即为个体极值点
end
Fb(111)=C;
%计算第一代粒子中被优化的函数的最优值
for j=2:itmax %从第二代开始迭代
V(::j)=W(j-1)*V(::j-1)+c1*rand*(pbest(::j-1)-x(::j-1))+c2*rand*(G(::j-1)-x(::j-1));
x(::j)=x(::j-1)+V(::j);
for xx=1:N
for yy=1:D
if x(xxyyj) x(xxyyj)=a;
end;
if x(xxyyj)>b
x(xxyyj)=b;
end;
end;
end;
for i=1:N
%%%%%%%%%%%%%%%%%%%%%%%%%%
mu1=x(i1j);
mu2=x(i2j);
%
P_omiga1_I=ones(1len_data)-abs(data-x(i1j))./(abs(data-x(i1j))+abs(data-x(i2j))+eps);
P_omiga2_I=ones(1len_data)-abs(data-x(i2j))./(abs(data-x(i1j))+abs(data-x(i2j))+eps);
%
P1=sum(P_omiga1_I(:))/len_data;%先验概率
P2=sum(P_omiga2_I(:))/len_data;
%
aa=P_omiga1_I.*abs(data-mu1);
bb=P_omiga2_I.*abs(data-mu2);
%
cita1=sqrt(sum(aa(:))/sum(P_omiga1_I(:)));%方差
cita2=sqrt(sum(bb(:))/sum(P_omiga2_I(:)));
%%%%%%%%%%%%%%%%%%MLE为一个行向量%%%%%%%%%%%%%%%%%%%%%%%
MLE=log(P1/(sqrt(2*pi)*cita1+eps).*exp(-(data-mu1).^2/(2*cita
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-05-07 09:43 LBF和LDF模型程序\
文件 4336 2014-11-01 18:16 LBF和LDF模型程序\GMM_PSO.m
文件 5509 2014-11-01 18:16 LBF和LDF模型程序\LBF.m
文件 5095 2014-11-01 18:16 LBF和LDF模型程序\LDF.m
文件 111947 2014-11-01 18:16 LBF和LDF模型程序\chr11.mat
文件 113434 2014-11-01 18:16 LBF和LDF模型程序\chr12.mat
文件 120923 2014-11-01 18:16 LBF和LDF模型程序\cis11.mat
文件 121039 2014-11-01 18:16 LBF和LDF模型程序\cis12.mat
文件 118349 2014-11-01 18:16 LBF和LDF模型程序\cisp1.mat
文件 119886 2014-11-01 18:16 LBF和LDF模型程序\cisp2.mat
文件 59978 2014-11-01 18:16 LBF和LDF模型程序\jb11.mat
文件 60061 2014-11-01 18:16 LBF和LDF模型程序\jb22.mat
文件 40222720 2014-05-07 10:02 LBF和LDF模型程序\movie7.avi
文件 6197 2014-11-01 18:16 LBF和LDF模型程序\zzz.m
文件 1003 2014-11-01 18:16 LBF和LDF模型程序\zzz1.m
- 上一篇:数字锁相环原理及程序
- 下一篇:matlab 蒙特卡罗
相关资源
- 图像分割分形算法
- 基于形态学的图像分割算法研究
- 基于Matlab实现的图像分割的常用算法
- 图像分割源代码(Matlab)
- 基于FCN的侧扫声呐图像分割matlab代码
- MATLAB 彩色图像分割
- 图像分割程序matlab版
- Chan-Vese算法的MATLAB代码
- 细胞图像分割与计数
- 基于图像轮廓的图像分割程序 matlab
- 使用FCM进行图像分割
- 交互式二维图像分割工具matlab实现
- 超声图像分割
- 分水岭分割算法matlab实现
- matlab mean shift EDISON Wrapper 图像分割
- SNIC超像素分割算法
- 图像分割的matlab算法
- 基于计算机视觉的图像分割算法的研
- fcm实现matlab图像分割的一组程序
- 标准snake算法matlab实现
- 基于MATLAB的图像分割算法研究
- Matlab代码文字识别:包括图像分割粘
- 基于Matlab的连通域算法
- 基于直方图双峰特性的图像分割Matl
- 主动轮廓模型图像分割程序 matlab
- 运用偏微分方程(PDE)方法进行图像
- 计算图像分割指标 代码
- 图像分割度量标准--matlab代码
- MATLAB 粒子群图像分割算法
- 用于图像分割的自适应扩散流活动轮
评论
共有 条评论