dijous, 29 de maig del 2008

Carregar i Guardar

Ja es pot guardar el model (amb els seus segments) i carregar segments des de fitxers ".obj" (Wavefront), un format de model 3D suportat per molts programes d'edició 3D, com blender, 3D Studio Max o Autocad.

Cada segment es guarda (i es carrega) com un objecte per separat, de manera que l'usuari pot guardar el treball i continuar més endavant sense perdre informació.
Hi ha un petit problema amb les normals, pero res que no es puga resoldre facilment.

Amés he creat una funció (linia groga) que donat un punt A i un segment, retorna el punt sobre el segment que està més proxim a A (que pot estar sobre un vertex, un triangle o una aresta). Aquesta funció es necesaria per implementar la primera part del cosit de poligons (el registre rigid).
També he creat altra funció (linia blava) que retorna el punt d'interseccio entre una linia qualsevol i un segment. Aquesta funció pot ser tambe util per al registre rigid, ja que es pot implementar de diverses formes amb resultats diferents en quan a eficiencia i cost temporal.

dijous, 15 de maig del 2008

Disparitat automàtica

Per al calcul automàtic dels paràmetres de la imatge de disparitat s'intenta maximitzar la quantitat de pixels usats (amb informació de disparitat) i la distribució dels valors (varianza). Per veure com influeix cada paràmetre sobre aquest valor (us*varianza) he fet unes gràfiques en 3D que mostren els valors obtinguts per a cada combinació de paràmetres (les gràfiques les he fet com he pogut). En estes es mostra l'efecte de l'Horopter, NDisp i CorrWnd sobre diferents imatges:



I en aquestes s'ha substituït CorrWnd per TexFilter:



Com es pot observar el paràmetre CorrWnd no influeix molt en el resultat, i el paràmetre TexFilter sempre influeix igual. Els màxims locals (les esferes blanques) sempre es troben en el plànol definit per Horopter i NDisp, per tant centraré la búsqueda automàtica en aquests 2 paràmetres. Els altres hauran de ser introduïts per l'usuari (però no sempre és necessari), ja que depenen de la textura de l'objecte.

dimarts, 6 de maig del 2008

Motion Flow

Ja es capturen les imatges de la càmera, i perque el model final es puga completar és necesari, per a l'usuari i per a l'algorisme de cosit de malles, que cada segment estiga més o menys ben col·locat respecte la resta. Per conseguir aço és necesari que els segments seguisquen el moviment de l'objecte real (Motion flow).
Per fer aço vaig pensar en emprar ARToolkit, que és una llibreria pensada per implementar aplicacions de realitat augmentada en temps real, i mitjantçant marcadors pot obtindre la transformació de la camera respecte al marcador. El problema és que aquests marcadors no poden ser qualsevol cosa, sino que han de tindre un patró determinat, i per tant tots els models apareixerien amb aquest marcador.
Com no he trobat cap llibreria que puga fer el motion flow sense marcadors he intentat fer jo alguna cosa, i aço es el que tinc de moment. Per ara tan sols pot seguir el moviment en X i Y i sense rotar el model, pero ja es molt més del que esperava aconseguir a estes altures.