资源简介
基于水平集的活动轮廓(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代码
- Matlab图像分割边缘提取算法
- 基于lab空间的图像分割
- MATLAB大脑腔体图像分割
- LAB空间分别提取红色、绿色、紫色、
- 图像分割matlab
- 模糊聚类图像分割FCM/FLICM等
- ASM二维图像分割MATLAB代码
- matlab 静态图像分割
- 基于信息熵方法的多阈值图像分割算
- KFCM与FCM进行脑电图分割
- 纹理图像分割Matlab源代码 PDF PPT
- 基于变分水平集的图像分割
- MATLAB简介+图像轮廓线提取+图像分割技
- 遗传算法图像分割matlab+源代码
- 用matlab写的图像分割的代码
- MRI图像分割
- 基于颜色的图像分割算法MATLAB代码
- 一种效果极好的交互式图像分割算法
- GVFSnake(matlab)边缘检测和图像分割
- 图像分割分形算法
- 基于形态学的图像分割算法研究
- 基于Matlab实现的图像分割的常用算法
- 图像分割源代码(Matlab)
- 基于FCN的侧扫声呐图像分割matlab代码
- MATLAB 彩色图像分割
- 图像分割程序matlab版
- Chan-Vese算法的MATLAB代码
- 细胞图像分割与计数
评论
共有 条评论