Cómo implementar el algoritmo de serpiente en la programación de Matlab para extraer los bordes de los defectos de rayado en la imagen. Si alguien tiene un programa, envíelo.
N = longitud(x);
alfa = alfa* unos(1,N);
beta = beta*unos(1,N);
% produce los cinco vectores de diagnóstico
alpham1 = [alpha(2:N) alpha(1)];
alphap1 = [alpha(N) alpha (1:N-1)];
betam1 = [beta(2:N) beta(1)];
betap1 = [beta(N) beta(1:N -1)];
a = betam1;
b = -alfa - 2*beta - 2*betam1;
c = alfa + alfap1 +betam1 + 4*beta + betap1;
d = -alphap1 - 2*beta - 2*betap1;
e = betap1;
% generar la matriz de parámetros
A = diag(a(1:N-2),-2) + diag(a(N-1:N),N-2);
A = A + diag(b(1:N-1),-1) + diag(b(N), N-1);
A = A + diag(c);
A = A + diag(d(1:N-1),1) + diag(d(N),-(N-1));
A = A + diag(e(1) :N-2),2) + diag(e(N-1:N),-(N-2));
invAI = inv(A + gamma * diag(unos(1,N) )));
for count = 1:ITER,
vfx = interp2(fx,x,y,'*linear');
vfy = interp2(fy,x,y,'*linear');
% serpiente deformada
x = invAI * (gamma* x + kappa*vfx);
y = invAI * (gamma* y + kappa*vfy);
fin