Documento 3047

Anuncio
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
1
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
2
ð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)
3
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
4
F(j2,i2)=1;
else F(j2,i2)=256;
end
end
end
image(F),colormap(gray)
5
Descargar