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 ...
166 Capítulo D. Código fuente163 double dy = pt.y - points[1][i].y;164165 if( dx*dx + dy*dy 15 && i < 32 && ficheroGFACIALES != NULL) {206207 if (MarcasEscritasGestos ==208 InfoFicheroGestos.gestos_num_canales) {209 MarcasEscritasGestos = 0;210 }211212 /* Se ponen signos negativos para renderizar bien213 en openGL con coords buenas*/214 fprintf (ficheroGFACIALES, " %i \t %i \t %f\r\n",215 MarcasEscritasGestos++, numFrame - 1, -points[1][i].x);216 fprintf (ficheroGFACIALES, " %i \t %i \t %f\r\n",217 MarcasEscritasGestos++, numFrame - 1, points3d[1][i].z);218 fprintf (ficheroGFACIALES, " %i \t %i \t %f\r\n",219 MarcasEscritasGestos++, numFrame - 1, -points[1][i].y);220 }221222
D.2. Código fuente de los módulos más relevantes. 167223 }//fin for para recorrer todos los puntos en cada frame224225 /* Para no perder puntos */226 if (k != count) {227228 points[1][k].x = points[0][k].x;229 points[1][k].y = points[0][k].y;230 k ++;231232 }233 count = k;234235 }236237 /* Para inicializar puntos con clics de ratón */238 if( add_remove_pt && count < MAX_COUNT )239 {240 points[1][count++] = cvPointTo32f(pt);241 cvFindCornerSubPix( grey, points[1] + count - 1,242 1,cvSize(win_size,win_size), cvSize(-1,-1),243 cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03));244 add_remove_pt = 0;245 if(count == 6 ) {246 initializeCoordinates(0);247 }248 }249250 /* Se recalculan las longitudes de los brazos y angulos */251 longAnteBrIzqdo = distance(points[1][2].x,points[1][2].y,252 points[1][0].x,points[1][0].y);253 longAnteBrDrcho = distance(points[1][3].x,points[1][3].y,254 points[1][1].x,points[1][1].y);255 longBrazoIzqdo = distance(points[1][4].x,points[1][4].y,256 points[1][2].x,points[1][2].y);257 longBrazoDrcho = distance(points[1][5].x,points[1][5].y,258 points[1][3].x,points[1][3].y);259260 /* Se copian las caracteristicas de la imagen del frame261 actual como frame anterior */262 CV_SWAP( prev_grey, grey, swap_temp );263 CV_SWAP( prev_pyramid, pyramid, swap_temp );264 CV_SWAP( points[0], points[1], swap_points );265 CV_SWAP( points3d[0], points3d[1], swap_points3d);266267 need_to_init = 0;268269 detect_face_eyes_mouth(imageOF);270 find_and_draw_contours(imageOF);271272 }Funciones más relevantes de splines.c1 /**********************************************************************2 * Funcion: suavizar3 * Descripcion: Suaviza la trayectoria del canal pasado como parametro.4 * Entradas: desde --> Frame origen del intervalo5 * hasta --> Frame destino del intervalo6 * canal --> Numero de canal a suavizar
- Page 140 and 141: 116 Capítulo 5. ResultadosVídeos
- Page 142 and 143: 118 Capítulo 5. Resultados5.2. Res
- Page 144 and 145: 120 Capítulo 5. Resultados• Boca
- Page 146 and 147: 122 Capítulo 5. ResultadosVídeos
- Page 148 and 149: 124 Capítulo 6. Conclusiones y Pro
- Page 150 and 151: 126 Capítulo 6. Conclusiones y Pro
- Page 152 and 153: 128 Capítulo 6. Conclusiones y Pro
- Page 154 and 155: 130 Capítulo 6. Conclusiones y Pro
- Page 156 and 157: 132 Capítulo 6. Conclusiones y Pro
- Page 158 and 159: 134 Capítulo A. DiagramasUSERcallb
- Page 160 and 161: 136 Capítulo B. Manual de usuarioF
- Page 162 and 163: 138 Capítulo B. Manual de usuarioM
- Page 164 and 165: 140 Capítulo B. Manual de usuarioL
- Page 166 and 167: 142 Capítulo B. Manual de usuarioP
- Page 168 and 169: 144 Capítulo C. Manual de Instalac
- Page 170 and 171: 146 Capítulo D. Código fuente/src
- Page 172 and 173: 148 Capítulo D. Código fuente77 i
- Page 174 and 175: 150 Capítulo D. Código fuente113
- Page 176 and 177: 152 Capítulo D. Código fuente233
- Page 178 and 179: 154 Capítulo D. Código fuente3533
- Page 180 and 181: 156 Capítulo D. Código fuente473
- Page 182 and 183: 158 Capítulo D. Código fuente593
- Page 184 and 185: 160 Capítulo D. Código fuente713
- Page 186 and 187: 162 Capítulo D. Código fuente833
- Page 188 and 189: 164 Capítulo D. Código fuente43 /
- Page 192 and 193: 168 Capítulo D. Código fuente7 *
- Page 194 and 195: 170 Capítulo D. Código fuente124
- Page 196 and 197: 172 BIBLIOGRAFÍA[17] OpenGL Archit
D.2. Código fuente <strong>de</strong> los módulos más relevantes. 167223 }//fin for para recorrer todos los puntos en cada frame224225 /* Para no per<strong>de</strong>r puntos */226 if (k != count) {227228 points[1][k].x = points[0][k].x;229 points[1][k].y = points[0][k].y;230 k ++;231232 }233 count = k;234235 }236237 /* Para inicializar puntos con clics <strong>de</strong> ratón */238 if( add_remove_pt && count < MAX_COUNT )239 {240 points[1][count++] = cvPointTo32f(pt);241 cvFindCornerSubPix( grey, points[1] + count - 1,242 1,cvSize(win_size,win_size), cvSize(-1,-1),243 cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03));244 add_remove_pt = 0;245 if(count == 6 ) {246 initializeCoordinates(0);247 }248 }249250 /* Se recalculan las longitu<strong>de</strong>s <strong>de</strong> los brazos y angulos */251 longAnteBrIzqdo = distance(points[1][2].x,points[1][2].y,252 points[1][0].x,points[1][0].y);253 longAnteBrDrcho = distance(points[1][3].x,points[1][3].y,254 points[1][1].x,points[1][1].y);255 longBrazoIzqdo = distance(points[1][4].x,points[1][4].y,256 points[1][2].x,points[1][2].y);257 longBrazoDrcho = distance(points[1][5].x,points[1][5].y,258 points[1][3].x,points[1][3].y);259260 /* Se copian las caracteristicas <strong>de</strong> la imagen <strong>de</strong>l frame261 actual como frame anterior */262 CV_SWAP( prev_grey, grey, swap_temp );263 CV_SWAP( prev_pyramid, pyramid, swap_temp );264 CV_SWAP( points[0], points[1], swap_points );265 CV_SWAP( points3d[0], points3d[1], swap_points3d);266267 need_to_init = 0;268269 <strong>de</strong>tect_face_eyes_mouth(imageOF);270 find_and_draw_contours(imageOF);271272 }Funciones más relevantes <strong>de</strong> splines.c1 /**********************************************************************2 * Funcion: suavizar3 * Descripcion: Suaviza la trayectoria <strong>de</strong>l canal pasado como parametro.4 * Entradas: <strong>de</strong>s<strong>de</strong> --> Frame origen <strong>de</strong>l intervalo5 * hasta --> Frame <strong>de</strong>stino <strong>de</strong>l intervalo6 * canal --> Numero <strong>de</strong> canal a suavizar