Académique Documents
Professionnel Documents
Culture Documents
visin artificial
Siguiendo la ecuacin:
S0 (u ) C0 u [a0, a1, )
S (u )
...
S (u ) C u [a a )
n
n 1, n
n
Donde los Ci son las constantes que se grafican en los intervalos u [ ai 1, ai ) con i > 0.
Splines de grado 1 (orden 2): Son funciones lineales a tramos. Un ejemplo se presenta en la siguiente figura:
S (u )
...
S (u ) p u q u [a a [
n
n
n 1, n
n
Donde pi , qi son los coeficientes de la ecuacin lineal a tramos.
B-Splines:
En analoga a la representacin de Bzier de curvas polinmicas tambin es conveniente expresar un Spline () como
una combinacin afn de ciertos puntos de control , esto es:
FIGURA 1.3- Curva grado 1(Lineal), Curva grado 2 (Parablica) y Curva Grado 3(Cubica).
1 si a(i ) u a( i )
donde N i0 (u )
0 de otra manera
() =
(++1)
()
1 () +
1 ()
(+) ()
(++1) (+1) +1
= = =
Dada la definicin de los B-Spline se desprende de forma inmediata las siguientes propiedades:
() Es polinmicas a trozos y tiene grado n.
() Es positiva sobre ( , ++1 ).
() 0 fuera de ( , ++1 ).
() Es continua por la derecha.
El Algoritmo de De Boor:
Considerando la combinacin lineal:
() = 0 ()
Sobre B-Splines de grado n sobre una secuencias de nudos Sin prdida de generalidad podemos suponer que la
secuencia de nudos y la sumatoria se extienden de a . Por la forma de los soportes locales de los esta suma es
siempre finita para cualquier u dado. Suponemos que
[ , +1 ) entonces:
() = 0 ()
Usando repetidamente la relacin de recurrencia para los B-Splines y agrupando trminos obtenemos:
() = 1 1 ()
=1
() = 0 () =
=1
Donde los
, =
=
++1
Note que [0 , 1] pues [ , +1 ] , y por lo tanto, las combinaciones afines son convexas.
Este algoritmo fue desarrollado por De Boor en 1972. Los puntos se pueden ordenar en el siguiente esquema
triangular, donde la regla de recursin es la anterior recursin afn.
00
10 12
0 1 2
2 2 2
0 1 2
Una consecuencia importante del algoritmo de De Boor es que el Spline () sobre un intervalo internodal (i.e. entre dos
nudos consecutivos) es una combinacin convexa de n+1 coeficientes consecutivos .Por lo tanto si los representan
puntos en un espacio afn, entonces () tambin es un punto del espacio afn. Por esta razn, los se denominan puntos
de control de ()
Los B-Splines forman una particin de la unidad. La figura ilustra la interpretacin geomtrica del algoritmo de De Boor
dada por Gordon y Riesenfeld en 1974.
() = ()
Un spline de grado n sobre los nudos , y sea si [ , +1 ) la forma polar que coincide sobre su diagonal con
() sobre [ , +1 ). Entonces tenemos una versin ms general del teorema fundamental.
Los puntos de control estn definidos por:
= [+1 + ]
= , ,
= [+1 + ]
= (1) + ++1
Entonces:
1
= (1)1
+ 1
Donde:
=
++1
Para [ , +1 ] esta demostracin coincide con el algoritmo de De Boor y puede utilizarse para calcular cualquier
polinomio.
FIGURA 1.8- Visualizacin de los intervalos del vector de nudos t (para este caso).
Entonces para interpolar (n+1) puntos se necesitan (n+7) nudos 0 , 1 , . . . , +6 para una interpolacin cubica uniforme.
Para obtener la curva construida, cuntos puntos de control son es necesario? Considere el siguiente caso:
Para interpolar (n+1) puntos, se necesitan (n+3) puntos de control 0 , 1 , . . . , +2 para una interpolacin cubica
uniforme.
La B-Spline cubica tendr segmentos 1 (), 2 (), () y con los criterios de la segunda derivada se llega al
siguiente acuerdo:
,3 () + +1,3 ()+1 + +2,3 ()+2 =
= 0,1, ,
Tambin:
0 = 0
1
7
1
1 + 2 + 3 = 1
4
12
6
1
2
1
2 + 3 + 4 = 2
6
3
6
1
2
1
2 + 1 + = 2
6
3
6
1
7
1
1 + + +1 = 1
6
12
4
+2 =
Actualmente 1 , . . . , +1 Son valores no conocidos. Al ignorar la primera y la ltima ecuacin (dado que son datos ya
conocidos) se genera un sistema de n-1 ecuaciones, con n+1 incgnitas. Se necesitan dos condiciones ms para resolver el
sistema.
Una opcin es encontrar las segundas derivadas de la primera y ltima ecuacin e igualarlas a cero.
(0)
(0) = 0,3
0 + 1,3 (0)1 + 2,3 (0)2 = 0
()
() = ,3
+ +1,3 () + +2,3 ()+2 = 0
31 2 = 20
+ 3+1 = 2
3
1
1 2 = 0
2
2
1
3
+ +1 =
2
2
Mediante la combinacin de estas dos ecuaciones, se completa el sistema de (n+1) ecuaciones con (n+1) incgnitas, que
se representa en el siguiente sistema matricial:
3 / 2 1/ 2
p1 D0
1/ 4 7 /12 1/ 6
p2 D1
p3 D2
1/ 6 2 / 3 1/ 6
. = .
. .
.
1/ 6 2 / 3 1/ 6
pn 1 Dn 2
1/ 6 7 /12 1/ 4 pn Dn 1
1/ 2 3 / 2 pn 1 Dn
() = ()
0 () = {
() =
1 () < (+1)
0
(++1)
()
1 () +
1 ()
(+) ()
(++1) (+1) +1
= [() , (+1) , () ]
() < (+1)
= +
= [() , . . , () , () , (+1) , () , , () ]
() < (+1)
=
Tiene la caracterstica de que toca tanto el primero como el ltimo punto gracias a sus nudos auxiliares en los extremos.
Implementacin:
Nudos Uniformes implementacin y resultado, sobre una curva B-Spline grado 3 (orden 4):
tmax = length(x); % x es el vector que contiene los puntos
k = 4; % k es el orden (grado+1)
a = [0,1:tmax+k]; % llena el vector
Resultado:
FIGURA 2.0- Curva B-Spline grado 3 en cuatro puntos del polgono usando vector de nudos uniformes.
Resultado:
FIGURA 2.1- Curva B-Spline grado 3 en cuatro puntos del polgono usando vector de nudos NO uniformes (Abiertos).
() =
(++1)
()
1 () +
1 ()
(+) ()
(++1) (+1) +1
0 () = {
1 () < (+1)
0
Se evalan las funciones base para los casos en que el nodo sea uniforme y cuando el grado es 0, 1, 2, 3.
Grado 0:
Desarrollando:
1 0 < 1
0
00 () = {
00 () = {1 0 < 1
Como resultado se genera una constante de valor 1 esto quiere decir que si cumple la condicin de continuidad en los
intervalos de nudos. La evaluacin de los intervalos en los nudos se hace siempre que el orden equivale a uno o el grado
toma valor de cero.
Grado 1: los tramos entraran en la forma de evaluacin de la funcin base () teniendo as las primeras ecuaciones
que seran polinomios de grado 1.
Desarrollando se tiene:
01 () =
(2) 0
(0) 0
0 () +
()
(1) (0)
(2) (1) 1
00 () = {1 0 < 1
10 () = {1 1 < 2
01 () = ()(1) + (2 )(1)
1
+1
()
Cada intervalo tiene sus nudos de complemento por lo que se generan diferentes ecuaciones.
0<1
01 () = {
(2 ) 1 < 2
Grafica:
Grado 2: las curvas usan polinomios de grado 2 por lo que sus segmentos son cuadrticos. Como nota; al aumentar el
grado de la curva, esta tiende a alejarse ms de los puntos de control. Por lo que el orden ideal se encuentra entre grado (23-4) dependiendo del uso y la exactitud que se requiera.
Las curvas de mayor grado tienen mayor complejidad para calcular sus funciones base por lo que primero se hace un
anlisis de su recursin:
,
,1
,2
() < ( + 1)
+1,1
+1,2
+1,2
+2,2
( + 1) < ( + 2) ( + 2) < ( + 3)
Se observa los segmentos de la curva que se evalan en las diferentes posiciones del vector de nudos.
(u a(i ) )
(a(i k 1) a(i ) )(a(i k 2) a(i ) )
u a(i ) a( i k 1) u a( i k ) u u a(i 1)
= + 1
a(i ) u a( i 1)
a(i 1) u a( i 2)
a(i 2) u a(i 3)
(u 0) 2
(2 0)(1 0)
0 u 1
u 0 2 u 3 u u 1
1 u 2
2 0 2 1 3 1 2 1
(3 u ) 2
0 u 1
(3 1)(3 2)
Simplificando:
u2
0 u 1
N 02 u 2 3u
1 u 2
2
u2
9
2u3
3u
2
2
Graficando:
Grado 3: se presenta a continuacin la definicin de las ecuaciones que provienen de la recursin del modelo general de
B-Spline utilizando el grado tres para tener una mayor exactitud en la curva.
Analizando la recursin:
N i ,k
N i 1,k 1
N i ,k 1
N i , k 3
Ni 1,k 2
Ni 1,k 2
N i ,k 2
N i 1,k 3
N i 1,k 3
Ni 2,k 3
Ni 2,k 2
N i 1,k 3 Ni 2,k 3
Ni 2,k 3
()
(++1)
1 () +
1 ()
(+) ()
(++1) (+1) +1
0 () = {
1 () < (+1)
0
=+1
...
(u a(i ) )3
(a(i k 1) a(i ) )(a(i k 2) a(i ) )(a(i k 3) a( i ) )
(a(i k 2) u )
(u a(i ) )
(u a(i 1) )
(a(i k 1) u )
(u a(i ) )
(a(i k 2) a(i 1) ) (a(i k 2) a(i ) ) (a(i k 2) a(i 1) ) (a(i k 1) a(i 1) ) (a(i k 1) a(i ) )
(u a(i 1) )
(u a(i 1) )
...
(a(i k ) u)
(a(i k 1) u)
(a(i k 1) u)
(u a(i ) )
...
(a(i k 1) u )
(u a(i 1) )
(u a(i 2) )
(a(i k ) u ) (a(i k ) u )
...
(a(i k 1) a(i 2) ) (a(i k 1) a(i 1) ) (a(i k 1) a(i 2) ) (a(i k ) a(i 2) ) (a(i k ) a(i 1) )
(a(i k ) u )3
(a(i k ) a(i 1) )(a(i k ) a(i 2) )(a(i k ) a(i 3) )
Ni 3,k 3
u3
6
3
u3
2u 2 2u
2
2
N 03 (u ) 3
u 4u 2 10u 22
2
3
3
u 2u 2 8u 22
6
3
0 u 1
1 u 2
2u3
3u 4
Graficando:
Se concluye el anlisis de las funciones B-Spline bsica mediante recursin para sus posteriores pruebas. Teniendo en
cuenta que el B-Spline grado 3 es el ms estable y tiene una tendencia uniforme a lo largo de sus intervalos se demostrara
la diferencia con grado 2.
j=0;
%% ecuaciones grado 2
for i=1 : tmax
e1 = simplify ((a(i)-u)^2/( (a(i)-a(i+k-1))*
(a(i)-a(i+k-2)) ) );
Resultados:
);
Resultados:
Concluyendo de manera significativa que las curvas B-Spline no uniformes de grado 3 (orden 4) poseen un control local
de sus puntos. Y que debido a las ecuaciones obtenidas de las funciones se han tratadas de forma general para este caso.
Tanto en nudos uniformes como en nudos no uniformes. Las curvas de grado 3 obtienen un mejor resultado que las de
grado 2, si de caso contrario optamos por grado 4 las curvas se alejan cada vez ms de los puntos del polgono de control
por lo que usualmente se usan grado 3 para la mayora de aplicaciones.
Resultados:
FIGURA 2.8- Curva Cubica interpolante de 6 puntos, con el polgono de control generado.
Interpolacin Cubica a pieza: dado que las curvas B-Spline cubicas tiene una aproximacin ms estable sobre lo que se
desea interpolar, se plantea como una solucin al problema de aproximar modelos naturales a modelos matemticos para
su posterior anlisis.
En el rea de ingeniera el anlisis estructural de las piezas producidas es de suma importancia, dado que los errores en la
lnea de produccin pueden ocasionar piezas defectuosas, por lo tanto se hace el anlisis de la siguiente pieza:
FIGURA 2.9- Imagen RGB visualizada como matriz multidimensional, con cada color como una dimensin.
La obtencin de los puntos a interpolar sigue el contorno de la imagen, dando as un conglomerado en las reas donde ms
cambios de trayectoria se generen en el contorno exterior de la imagen, para obtener una forma cerrada tanto el primer
como el ltimo punto son estn en las mismas coordenadas dando una ecuacin que recorre todo el contorno.
La generacin de las ecuaciones un total de 46 ecuaciones paramtricas, que graficadas bajo los intervalos generan el
conjunto de ecuaciones que envuelven la figura:
FIGURA 3.0- Modelo matemtico de pieza, usando algoritmo de interpolacin en Curvas B Splines.
Dando como resultado una aproximacin al modelo matemtico de la pieza con el mnimo de errores posibles, usando las
curvas B Splines.
REFERENCIAS:
[1] SCHABAK (1993), Error stimates for approximation from controls nets
Computer aided geometric desing 10:57-66