Also mit Puffer mit RGBRGBRGB ... Größe von w * 3 wie OpenCV Image mit solchen Daten füllen?OpenCV: wie RGB-Bild mit Werten für jede der RGB-Farben für jedes Pixel füllen?
0
A
Antwort
4
Der einfachste Weg besteht darin, die Elemente des Puffers mit der at templated method zu durchlaufen.
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];
}
Natürlich müssen Sie Ihre Matrix mit dem richtigen Typ initialisieren, und legen Sie das Farbformat, das ich nicht über getan haben. Sehen Sie mehr über das OpenCV-Matrixobjekt .
2
IplImage hat eine variable imageData. Es ist nur ein Puffer. So können Sie Ihr Array einfach kopieren, wenn es das gleiche Format wie imageData Buffer hat. Wenn das Format unterschiedlich ist, können Sie kopieren, aber Sie müssen andere Variablen Ihres IplImage korrekt ausfüllen.