Problème remplissage std::map
Bonjour,
J'ai une image volumique en niveau de gris sous forme d'un tableau tridimensionnel d'unsigned char ptr donc chaque élément correspond à un niveau de gris (blanc=niveau maximal, noir=niveau nul).
Je désire trier mes voxels selon leur niveau de gris. J'ai pensé à une std::map dont les clés sont les adresses des voxels dans ptr et dont les valeurs sont les niveaux de gris. Voici un exemple :
Code:
1 2 3 4 5 6 7
|
std::map<unsigned char*, unsigned char, classcomp> mamap;
//remplissage de la map
for(int i=0; i<3; i++)
for(int j=0; j<2; j++)
for(int k=0; k<4; k++)
mamap[&ptr[i][j][k]] = ptr[i][j][k]; |
où classcomp est défini comme suit :
Code:
1 2 3 4 5
| struct classcomp {
bool operator()( unsigned char* s1, unsigned char* s2 ) {
return (*s1)<(*s2);
}
}; |
Après ceci, le premier constat est que la taille de mamap vaut 1!!! C'est pas bon! La taille devrait être la taille du volume (=nbre total de voxels).
Où pensez-vous que se situe mon erreur?
Merci de m'aider, je ne comprends pas
Pix