Donc avoir un tampon avec RGBRGBRGB ... taille de w * 3 comment remplir OpenCV Image avec de telles données?OpenCV: comment remplir l'image RGB ayant des valeurs pour chacune des couleurs RVB pour chaque pixel?
0
A
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.