IFT6145 - Vision 3D


Travail Pratique 5 : Lumière structurée


Début

mardi 4 avril 2006

Remise

~3 semaines

Description

Vous devez reconstruire des scenes 3D, en utilisant le principe de la lumiere structuree. Il y a 5 scenes a reconstruire (les images sont reduites pour l'affichage).

1
2
3
4
5

Images

Pour chaque scene, 40 images sont prises du meme point de vue, mais en projetant 40 pattern differents. Ces patterns sont tous encodes avec le code de Gray (10 bits) et se distribuent ainsi:
Codesdesciption
_pat00 ... _pat09images des bits 0 a 9 de la position X du projecteur
_pat10 ... _pat19images des bits 0 a 9 de la position Y du projecteur
_pat20 ... _pat29images inverse des bits 0 a 9 de la position X du projecteur
_pat30 ... _pat39images inverse des bits 0 a 9 de la position Y du projecteur

Les images sont disponibles dans un fichier dataset.tar.gz. Attention, ca fait 5 X 40 X 1MB = 200MB une fois decompresse...

Programme

Faite un programme stl (en C, C++, Java, langage machine, ...) qui prend en argument les images sous la forme d'un printf, donc qu'on appelle comme suit:
stl set1/_pat%02d_00.pgm ...autres parametres de votre choix...
qui va lire les images set1/_pat00_00.pgm, set1/_pat01_00.pgm, ..., set1/_pat39_00.pgm, puis les analyser pour obtenir une reconstruction. Les "autres parametres de votre choix" doivent permettre de choisir la version de l'algorithme (A,B,C) et de donner les valeurs aux parametres si necessaire. Pour ceux qui ne sont pas familiers avec sprintf, vous pouvez lire les images comme ceci:
char buf[100];
  for(i=0;i<40;i++) {
     sprintf(buf,format,i);   // format contient "set1/pat%03d_00.pgm"
     ... lire l'image buf ...
  }
Le programme doit

Evaluation