S'il vous plait, comment faire (SOS) pour enregistré une image qui a une profondeur de 32F ?!
S'il vous plait, comment faire (SOS) pour enregistré une image qui a une profondeur de 32F ?!
Pour ceux qui veulent la solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // Enregistrement des données d'une image 32 bit à une image 8 bit //IplImage *img8bit; //IplImage *img32bit; // On fait des opérations sur l'image à 32 bit // On copie les données sur la 8 bit for(int i = 0; i < img8bit->width; i++) for(int j = 0; j < img8bit->height; j++) CV_IMAGE_ELEM(img8bit, uchar, j, i) = CV_IMAGE_ELEM(img32bit, float, j, i); // Maintenant je peux enregistrer l'image cvSaveImage("monImage",img8bit);
image_Re (64F)
saveimg (8B)
cvConvertScale(image_Re,saveimg,255,0)
comme ça ça marche aussi![]()
ha ça ne devait pas marcher chez moi car j'avais mis
cvConvertScale (..., 1,0)
au lieu de
cvConvertScale (..., 255,0) !?!
Merci Vinss !
En effet : j'avais fait l'erreur une fois aussi mais en regardant les valeurs contenues dans mon ipl j'avais constaté que c'etait pas top : à partir de la je me suis rendu compte que la valeur du convert scale permettait de specifier la valeur max du pixel : soit 255 (0-255) = 256 valeurs = 2^8 valeurs) pour 8 bits.
ha ok...ton explication est carrément plus claire que celle de l'API
Partager