在这里:
function u = EVOLUTION(u0, g, lambda, mu, alf, epsilon, delt, numIter)
% EVOLUTION(u0, g, lambda, mu, alf, epsilon, delt, numIter) updates the level set function
% according to the level set evolution equation in Chunming Li et al's paper:
% "Level Set Evolution Without Reinitialization: A New Variational Formulation"
% in Proceedings CVPR'2005,
% Usage:
% u0: level set function to be updated
% g: edge indicator function
% lambda: coefficient of the weighted length term L(\phi)
% mu: coefficient of the internal (penalizing) energy term P(\phi)
% alf: coefficient of the weighted area term A(\phi), choose smaller alf
% epsilon: the papramater in the definition of smooth Dirac function, default value 15
% delt: time step of iteration, see the paper for the selection of time step and mu
% numIter: number of iterations
%
u=u0;
[vx,vy]=gradient(g);
for k=1:numIter
u=NeumannBoundCond(u);
[ux,uy]=gradient(u);
normDu=sqrt(ux^2 + uy^2 + 1e-10);
Nx=ux/normDu;
Ny=uy/normDu;
diracU=Dirac(u,epsilon);
K=curvature_central(Nx,Ny);
weightedLengthTerm=lambdadiracU(vxNx + vyNy + gK);
penalizingTerm=mu(4del2(u)-K);
weightedAreaTerm=alfdiracUg;
u=u+delt(weightedLengthTerm + weightedAreaTerm + penalizingTerm); % update the level set function
end
% the following functions are called by the main function EVOLUTION
function f = Dirac(x, sigma) %水平集狄拉克计算
f=(1/2/sigma)(1+cos(pix/sigma));
b = (x<=sigma) & (x>=-sigma);
f = fb;
function K = curvature_central(nx,ny); %曲率中心
[nxx,junk]=gradient(nx);
[junk,nyy]=gradient(ny);
K=nxx+nyy;
function g = NeumannBoundCond(f)
% Make a function satisfy Neumann boundary condition
[nrow,ncol] = size(f);
g = f;
g([1 nrow],[1 ncol]) = g([3 nrow-2],[3 ncol-2]);
g([1 nrow],2:end-1) = g([3 nrow-2],2:end-1);
g(2:end-1,[1 ncol]) = g(2:end-1,[3 ncol-2]);
是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
Imin=imread('lenajpg');
imshow(Imin);title('原始图像');
Imout=imadjust(Imin,[30/255,150/255],[150/255,255/255]);
figure;imshow(Imout);
问题不全,只回答了一部分。需要帮的话我邮箱:weiguang@foxmailcom
C(i,1)>=0&&C(i,1)<=01
a=a+1;
else if C(i,1)>=02&&C(i,1)<=04
b=b+1;
else if C(i,1)>=05&&C(i,1)<=06
c=c+1;
else if C(i,1)>=07&&C(i,1)<=09
d=d+1;
else if C(i,1)==1
你的这个条件是不是漏掉了一些值啊。。。然后C中的那个就是0,精度造成的
题主是否想询问“matlab生成的exe很大的原因”?matlab生成的exe很大的原因有依赖库文件、数据文件、代码结构、程序功能。
1、依赖库文件:MATLAB程序通常需要依赖许多库文件,包括MEX文件、DLL文件、MATLAB运行时库等。这些文件通常很大,会导致生成的exe文件也很大。解决方法是尽可能减少程序的依赖库文件,如果有必要可以考虑使用静态链接库。
2、数据文件:MATLAB程序可能需要使用大量的数据文件,例如训练数据、测试数据等。这些数据文件通常很大,会导致生成的exe文件也很大。解决方法是尽可能减少程序使用的数据文件大小,可以考虑使用压缩算法对数据文件进行压缩。
3、代码结构:MATLAB程序的代码结构可能会影响生成的exe文件大小。例如,一些不必要的代码、变量和函数可能会导致生成的exe文件大小增加。解决方法是对程序进行优化,删除不必要的代码、变量和函数。
4、程序功能:MATLAB程序的功能也会影响生成的exe文件大小。一些复杂的功能和算法通常需要使用更多的代码和依赖库文件,会导致生成的exe文件也很大。解决方法是尽可能简化程序的功能和算法,避免使用过多的依赖库文件。
以上就是关于matlab 程序解释 急需全部的内容,包括:matlab 程序解释 急需、matlab程序画图、编写程序(用MATLAB)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)