2010-11-19 31 views

Répondre

4

Le moyen le plus simple consiste simplement à faire une boucle sur les éléments du tampon à l'aide de at templated method.

unsigned char buffer[] = {1, 2, 3, ..., 18}; // RGBRGB... 
cv::Mat image(2, 3); 
for (int i = 0; i < 18; ++i) { 
    int row = i/9; 
    int col = (i/3)%3; 
    int rgb = i%3; // An index 
    image.at<unsigned char>(row,col+rgb) = buffer[i]; 
} 

Bien sûr, vous devez initialiser votre matrice avec le bon type, et définir le format de couleur, que je ne l'ai pas ci-dessus. En savoir plus sur l'objet de matrice OpenCV here.

2

IplImage a une variable imageData. C'est juste un tampon. Vous pouvez donc simplement copier votre tableau s'il a le même format que le tampon imageData. Si le format diffère, vous pouvez copier, mais vous devrez remplir correctement les autres variables de votre IplImage.