Matemáticas
Análisis matemático
Una curva borde no es una curva de nivel pues, para serlo, la curva borde debería estar contenida en un plano paralelo al plano XY. Por ejemplo, la función f(x,y)=Sen(3y)-x:
ðf = -1 ðf = 3Cos(3y)
ðx ðy
ð2f = 0 ð2f = -9Sen(3y)
ðx2 ðy2
Una curva borde se presenta en y=0 ðx pues ambas derivadas segundas se anulan y sus derivadas parciales son máximas (ðf/ðx constante y ðf/ðy máxima cuando Cos(3y)=1). Como se ve claramente en la figura 1, esta curva es una recta que pasa sobre el eje x, con y=0 y z=-3x. Esta curva toma infinitos valores en z, por lo tanto no puede ser contenida en un plano paralelo al plano XY y no puede ser una curva de nivel de f(x,y)=sen(3y)-x.
FIGURA 1. CURVA BORDE. Se ve claramente cómo la curva borde no puede ser contenida por un plano paralelo al XY, no pudiéndose así contenerla en una curva de nivel.
Tomando una pequeña sección de la curva y un punto X sobre la misma en un entorno lo suficientemente pequeño como para considerar constante a la función, un posible versor tangente a la curva en todo punto es v(t)=(Cos(t),Sen(t)):
Versor perpendicular versor tangente
curva borde
FIGURA 2. CURVA Y VERSORES. Curva borde en un entorno de (x,y) con su versor tangente y normal.
El versor tangente v(t)=(Cos(t),Sen(t)) es perpendicular al versor de pendiente -1/m (versor normal w(t)), donde m es la pendiente del versor v(t). Esta es la misma dirección que la dirección del gradiente tomando a la curva borde como curva de nivel, y la dirección del gradiente indica la dirección de máximo crecimiento de la función. Por lo tanto, la dirección del versor normal al versor tangente indica la dirección de máximo crecimiento de la función.
La proyección u de cualquier punto (x,y) del entorno sobre el versor normal se obtiene efectuando el producto escalar entre ambos vectores:
u = (x,y).v(t) = ðð(x,y)ðð ððv(t)ðð Cos(ð) = ðð(x,y)ðð Cos(ð)
Donde ð es el ángulo comprendido entre el vector (x,y) y el vector v(t). Como la norma de v(t) es 1, se reemplazó por su valor.
(x,y)
v(t)
ð u
FIGURA 3. PROYECCIÓN U. Proyección de cualquier (x,y) perteneciente al entorno sobre el versor v(t).
Para cada (x,y) existe una única proyección u sobre v(t), pues cada (x,y) define un único ángulo entre él y v(t) y una única norma. De esta manera, para cada (x,y) existe y es única la proyección u sobre el versor v(t).
Pero para cada valor de u existen infinitos (x,y) posibles tales que proyectados sobre v(t) sea u su proyección, ya que u, al depender de la norma de (x,y) y el ángulo que forma con v(t)), existen infinitos (x,y) que correspondan a una proyección u. Pero estos infinitos vectores se van a encontrar contenidos sobre una recta normal a la generada por el versor v(t). En la figura 4 se muestra la proyección u sobre la recta generada por el versor v(t). Sobre la recta normal a v(t) que pasa por u se encontrarán todos los vectores posibles que corresponden a esa misma proyección u.
Recta que contiene todos los posibles (x,y)
u v(t)
FIGURA 4. POSIBLES VECTORES PROYECTADOS. Para una sola proyección u se obtienen infinitos posibles vectores tales que su proyección sea u contenidos sobre una recta normal a v(t) que pasa por u.
En tres dimensiones la dirección de v(t) indica la dirección de máximo crecimiento de la función y la norma de la proyección u indica el crecimiento en dirección del vector (x,y) del entorno.
FIGURA 5. DIRECCIÓN DE MÁXIMO CRECIMIENTO. La recta generada por v(t) indica la dirección de máximo crecimiento. Las proyecciones sobre dicha recta (de norma menor o igual a la de v(t) por estar multiplicada por el coseno del ángulo comprendido entre (x,y) y v(t)) indicarán el crecimiento en otras direcciones.
En términos de curvas de nivel, la dirección de máximo crecimiento es perpendicular a la curva de nivel sobre la cual se calcule. Definimos
f(x,y)=k
como una curva de nivel genérica de f(x,y). Se puede escribir como y=y(x) si la función es diferenciable y la derivada de f respecto de y es distinta de cero. Por lo tanto, por el teorema de la función implícita:
ðy = - ðf/ðx (1)
ðx ðf/ðy
Parametrizando la curva, queda:
H(x) = (x,y(x))
Y el vector tangente a la parametrización, reemplazando en (1) para todo punto es:
H'(x) = (1, ðy/ðx) = (1, -ðf/ðx )
ðf/ðy
Efectuando el producto escalar del gradiente de f con el vector tangente a la curva borde:
ðf . H'(x) = (ðf/ðx , ðf/ðy) . (1, -ðf/ðx ) = ðf/ðx - ðf/ðy * ðf/ðx = 0
ðf/ðy ðf/ðy
Por lo tanto, esto demuestra que v(t) (que posee la misma dirección que el gradiente de f) es perpendicular a toda curva de nivel de f.
Teniendo en cuenta que hay infinitos puntos para cada proyección u (pero siempre contenidos sobre una recta normal a la recta generada por v(t)), se puede tomar una reparametrización de f(x,y) en g(u), pero cada u representará a todos los (x,y) pertenecientes a una recta en particular que se proyectan sobre el mismo u. Explicado de otra manera, g(u) está también representado por la intersección entre la superficie de f(x,y) y un plano perpendicular al plano XY que contiene a la recta generada por v(t). En el ejemplo de la figura 1 (Sen(3y)-x)) la intersección de la gráfica de la función con el plano mencionado sobre el punto (0,0) está dada por g(u)=Sen(3u), mostrado en la figura 6.
FIGURA 6. REPRESENTACIÓN DE g(u). En el (0,0) se encuentra el máximo valor de la derivada donde se produce un punto de inflexión, dando cero la segunda derivada.
Si estoy sobre un punto borde (y este punto borde perteneciente a g(u) contenido en la curva borde), entonces g'(u) debe dar un máximo. Análogamente cuando una función de una variable posee un máximo, su derivada debe ser cero. Por lo tanto (g'(u))' = g''(u) = 0.
Además, si f(x,y)=g(u) (donde u=xCos(t)+ySen(t) ):
f(x,y)=g(u)
ðf/ðx = ðg/ðu*ðu/ðx = ðg/ðu*Cos(t)
ð2f/ðx2 = ð2g/ðu2*ðu/ðx*Cos(t) = ð2g/ðu2*Cos2(t)
Y también:
f(x,y)=g(u)
ðf/ðy = ðg/ðu*ðu/ðy = ðg/ðu*Sen(t)
ð2f/ ðy2 = ð2g/ðu2*ðu/ðy*Sen(t) = ð2g/ðu2*Sen2(t)
Entonces:
ð 2f(x,y) = ð2f/ ðx2 + ð2f/ ðy2 = ð2g/ðu2*Cos2(t) + ð2g/ðu2*Sen2(t) =
= ð2g/ðu2*( Cos2(t) +Sen2(t)) = ð2g/ðu2
Por lo tanto, si g(u) posee un punto de inflexión cuando g''(u)=0, en ese punto también ocurre que ð 2f(x,y)=0. Esta condición se extiende también para el resto de los puntos pertenecientes a la curva borde, por lo tanto se podría enunciar como condición de curva borde que el Laplaciano de f(x,y) sea cero.
Considerando a f(x,y) como una función discreta tenemos la siguiente aproximación para sus derivadas parciales:
f'x = f(n1+1,n2) - f(n1,n2)
f'y = f(n1,n2+1) - f(n1,n2)
Tomando el punto anterior para las derivadas segundas obtenemos:
f''xx=f'x(n1,n2)-f'x(n1-1,n2)=f(n1+1,n2)-f(n1,n2)-f(n1,n2)+f(n1-1,n2) =
= f(n1+1,n2)-2f(n1,n2)+f(n1-1,n2)
f''yy=f'y(n1,n2)-f'y(n1,n2-1)=f(n1,n2+1)-f(n1,n2)-f(n1,n2)+f(n1,n2-1) =
= f(n1,n2+1)-2f(n1,n2)+f(n1,n2-1)
Y por lo tanto el Laplaciano de f(x,y) es:
ð2f(x,y) = f(n1+1,n2)-2f(n1,n2)+f(n1-1,n2) + f(n1,n2+1)-2f(n1,n2)+f(n1,n2-1) =
= f(n1+1,n2)-4f(n1,n2)+f(n1-1,n2) + f(n1,n2+1)+f(n1,n2-1)
Detector de bordes para MatLab:
A=input('Ingrese la matriz a procesar: ');
b=[.3,.3
.3,.3];
G=conv2(A,b);
F=[];
[m,n]=size(G);
for j=2:m-1
for i=2:n-1
% D1X(j,i)=G(j+1,i)-G(j,i);
% D1Y(j,i)=G(j,i+1)-G(j,i);
D2X(j,i)=G(j+1,i)-2*G(j,i)+G(j-1,i);
D2Y(j,i)=G(j,i+1)-2*G(j,i)+G(j,i-1);
end
end
for j2=2:m-2
for i2=2:n-2
if D2X(j2,i2) + D2Y(j2,i2)==0
F(j2,i2)=1;
else F(j2,i2)=256;
end
end
end
image(F),colormap(gray)
Descargar
Enviado por: | Lucas Fránciga |
Idioma: | castellano |
País: | España |