projz 0 100.0 100.0 10.0 projd 0 100.0 100.0 0.1Prend un point (x,y) en pixel dans la camera (ref_cam) et lui donne la profondeur z (ou la disparite d), puis le reprojete dans toutes les cameras.
proj[0,100.0,100.0,10.0z]= cam0:[100.0,100.0] cam1:[24.5,293.3]Utilisez [] pour les projection a l'exterieur de l'image. Attention: Verifiez que le point se projet EN AVANT des cameras.
couleurz plusproche 0 100.0 100.0 10.0 couleurz interpole 0 100.0 100.0 10.0 couleurz minmax 0 100.0 100.0 10.0Prend un point comme pour la commande proj mais affiche la couleur en ce point. On doit afficher la couleur selon le type. Notez que les couleurs R,G,B sont traites independamment.
couleur[0,100.0,100.0,10.0z]= cam0:[30,45,66] ... cam2:[30,25,206] ou (pour le type minmax) cam0:[30-35,45-67,66-66]Soit p la position "float" d'un pixel dans l'image. La couleur plusproche est la couleur du pixel entier le plus proche de p. La couleur interpole est la couleur interpolée bi-linéairement (voir Interpole dans img.c). La couleur minmax est la couleur du pixel le plus proche de p dans l'image min, et dans l'image max. L'image min est définie comme suit: I_min(x,y)=min(I(x +/- 1,y +/- 1) et même chose pour max. La couleur minmax est donc un intervalle de valeurs.
coutz variance plusproche 0 100.0 100.0 10.0 coutz reference plusproche 0 100.0 100.0 10.0 coutd absolu minmax 0 100.0 100.0 0.1devrait afficher (pour 1 commande):
cout[0,100.0,100.0,10.0z]=123.5Notez que le cout est calculé pour chaque couleur (R,G,B) séparement et additionné pour donner le coût final. Le type de coût peut être la variance, la reference et absolu.
Commande: scan[z|d] (type de cout) (type de couleur) (ref_cam) (x) (y) (z1|d1) (z2|d2) (nb_valeurs)
scanz variance plusproche 0 100.0 100.0 10.0 20.0 11 scand variance interpole 0 100.0 100.0 0.1 0.05 3devrait afficher
scan[0,100.0,100.0,(0.1:0.05)z]: 0.1z : 123.7848 ... 0.05z : 150.8Notez que pour générer nb valeurs entre z1 et z2, on utilise
for(i=0;i<nb;i++) z=(z2-z1)*i/(nb-1)+z1;
stereoz recherchedirecte variance plusproche 2 -15 0 16 sortieA stereod recherchedirecte variance interpole 2 -15 0 16 sortieB stereoz progdynamique reference minmax 2 -15 0 16 sortieA stereod progdynamique absolu minmax 2 -15 0 16 sortieBLes algorithmes sont:
La sortie est une carte de profondeur sauvegardée dans un fichier comme suit:
(sortie)_(algo)_(cout)_(couleur)_disp.pgm
et si on a nb de valeurs de profondeurs, alors on doit normaliser
entre 0 et 255 comme suit: v = d / (nb-1) * 255.
On doit aussi générer une sortie d'une image interpolée pour la caméra de référence, avec le nom: (sortie)_(algo)_(cout)_(couleur)_inter.pgm qui contient la valeur de la couleur "interpole" moyenne pour chaque pixel avec sa profondeur finale.
Utilisez les abréviations suivantes pour le nom de fichier:
algo | cout | couleur | |||
---|---|---|---|---|---|
recherchedirecte | rd | variance | var | plusproche | var |
progdynamique | dp | reference | ref | interpole | i |
absolu | abs | minmax | mm |
stereod recherchedirecte variance interpole 2 -15 0 16 blubDevrait être dans les fichiers
blub_rd_var_i_disp.pgm blub_rd_var_i_inter.pgm
Les fichiers:
tsukuba.commandes,
tsukuba.cameras
Les images: tsukuba