2016-03-21 2 views
0

J'utilise CImg pour l'affectation du traitement d'image. Après avoir appelé transposent() avec le code suivantLa fonction de transposition CImg donne une mauvaise largeur

cout << image_subsample.width() << ","<<image_subsample.height() << "transpose:" << image_subsample.transpose().width() <<"," <<image_subsample.transpose().height() << endl; 

La sortie est

1200,1transpose:1200,1200 

la sortie prévue de transposition est

1200,1transpose:1,1200 

Suis-je manque quelque chose?

Répondre

0

Vous transposez réellement votre matrice deux fois dans votre exemple, donc la sortie que vous obtenez est logique. Utilisez get_transpose() ou mieux stockez votre matrice transposée quelque part avant d'afficher sa taille.

CImg<> transp = img.get_transpose(); 
fprintf(stderr,"%d,%d",transp.width(),transp.height()); 
+0

Oh, vous avez compris. donc le premier appel à transposer() changerait l'objet lui-même et le deuxième appel à transposer() est la transposition de transposer. Merci! je l'ai –