Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ... Download document (10.35 MB) - Escuela Superior de Informática ...

11.07.2015 Views

98 Capítulo 4. Metodología de TrabajoAlgoritmo 5 Cálculo de la tercera dimensión1: mientras (haya marcas de brazos) hacer2: double disVista = distance(points[1][i].x, points[1][i].y, points[1][i+2].x,points[1][i+2].y);3: double longReal = 0;4: si (i es la marca muñeca izquierda) entonces5: longReal = longAnteBrIzqdo;6: si no, si (i es la marca muñeca derecha) entonces7: longReal = longAnteBrDrcho;8: si no, si (i es la marca codo izquierdo) entonces9: longReal = longBrazoIzqdo;10: si no11: longReal = longBrazoDrcho;12: fin si13: si (disVista es mayor que longReal) entonces14: disVista = longReal;15: fin si16: double alpha = 0;17: double beta = 0;18: double zeta = 0;19: si ( la marca es un codo o muñeca ) entonces20: alpha = acos(disVista / longReal);21: zeta = sin(alpha) * longReal;22: si no23: beta = asin(disVista / longReal);24: zeta = points3d[0][i+2].z + (longReal * cos(beta));25: fin si26: points3d[1][i] = cvPoint3D32f(points[1][i].x, points[1][i].y, zeta);27: fin mientrasCHANNELS_SECTIONCHANNEL_TAG CHANNEL_IDNombre_Canal_0_dx 0Nombre_Canal_0_dy 1Nombre_Canal_0_dz 2Nombre_Canal_1_dx 3Nombre_Canal_1_dy 4Nombre_Canal_1_dz 5... ...DATA_SECTION

4.4. Reconstrucción del movimiento en 3D y generación de los ficheros de marcas 99CHANNEL_ID FRAME VALUE0 0 valor real0 0 valor real0 0 valor real... ... ...Last_Channel_id 0valor real0 1 valor real0 1 valor real0 1 valor real... ... ...Last_Channel_id 1valor real0 2 valor real...Las palabras en mayúscula son identificadores clave de cada parte del fichero de marcas.Se distingue una primera parte de especificación de canales. Cada marca lleva asociada trescanales (uno por coordenada); a cada canal se le asigna un identificador numérico único. Yen la segunda parte del fichero se indica, para cada canal, la posición en el espacio en undeterminado frame.El fichero de marcas MF tiene 18 canales correspondientes a las 6 marcas empleadas enla detección del movimiento de brazos, cuya disposición puede verse en la Figura 4.9.104 52 31Figura 4.9: Disposición de las marcas del fichero MF (Marks File) generado.El nombre dado a las marcas es libre. Los que se han utilizado en el fichero MF son losde la Tabla 4.2.El fichero de marcas GFF tiene 48 canales correspondientes a las 16 marcas empleadasen la detección de los gestos faciales y su disposición puede verse en la Figura 4.10.

98 Capítulo 4. Metodología <strong>de</strong> TrabajoAlgoritmo 5 Cálculo <strong>de</strong> la tercera dimensión1: mientras (haya marcas <strong>de</strong> brazos) hacer2: double disVista = distance(points[1][i].x, points[1][i].y, points[1][i+2].x,points[1][i+2].y);3: double longReal = 0;4: si (i es la marca muñeca izquierda) entonces5: longReal = longAnteBrIzqdo;6: si no, si (i es la marca muñeca <strong>de</strong>recha) entonces7: longReal = longAnteBrDrcho;8: si no, si (i es la marca codo izquierdo) entonces9: longReal = longBrazoIzqdo;10: si no11: longReal = longBrazoDrcho;12: fin si13: si (disVista es mayor que longReal) entonces14: disVista = longReal;15: fin si16: double alpha = 0;17: double beta = 0;18: double zeta = 0;19: si ( la marca es un codo o muñeca ) entonces20: alpha = acos(disVista / longReal);21: zeta = sin(alpha) * longReal;22: si no23: beta = asin(disVista / longReal);24: zeta = points3d[0][i+2].z + (longReal * cos(beta));25: fin si26: points3d[1][i] = cvPoint3D32f(points[1][i].x, points[1][i].y, zeta);27: fin mientrasCHANNELS_SECTIONCHANNEL_TAG CHANNEL_IDNombre_Canal_0_dx 0Nombre_Canal_0_dy 1Nombre_Canal_0_dz 2Nombre_Canal_1_dx 3Nombre_Canal_1_dy 4Nombre_Canal_1_dz 5... ...DATA_SECTION

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!