Bonjour,
Je viens de découvrir boost, je l'ai téléchargé et je compile un hello word,
un hello matrix plus exactement.
Je voudrais juste faire la rotation d'une matrice 2D. Je patauge tellement que je me demande si j'ai bien compris à quoi sert cette librairie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) m (i, j) = 3 * i + j; std::cout << m << std::endl; }
Est ce que boost permet de faire ce type de rotation comme on pourrait le faire avec une image?
Je veux insérer cette rotation dans une chaine de calculs. Mes données sont stockées dans un double pointeur que je réserve comme ceci:
Je peux ainsi atteindre les données par la position (ppOutputFl[yIndex][xIndex]) ou parcourir le tableau d'une traite (pOutputFlt[index])
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int height = 100; int width = 200; long int newSurface = height * width; float ** ppOutputFlt = new float*[height]; ppOutputFlt[0] = new float[newSurface]; for (int index = 1 ; index < height ; ++index) ppOutputFlt[index] = ppOutputFlt[index-1] + width; float *pOutputFlt = ppOutputFlt[0];
Afin d'optimiser le temps de traitement, (calculs itératifs), est il possible d'initialiser une matrix boost en passant directement mon pointeur de float sans faire une copie élément par élément de mon tableau?
Merci de m'aider à démarrer avec cette librairie
Partager