So habe ich bereits ein Programm geschrieben, das das Bild von einer Webcam in einen Vektor namens pBuffer erfasst. Ich kann leicht Acess die RGB-Pixelinformation jeden Pixel, einfach durchDirectX und OpenCV
pBuffer[i]=R;pBuffer[i+1]=G;Buffer[i+2]=B.
Kein Problem hier.
Der nächste Schritt ist jetzt ein IplImage * img, und füllen Sie es mit den Informationen des pBuffer ... eine Art von SetPixel.
Es gibt eine SetPixel Funktion auf dem Netz, das heißt:
(((uchar*)(image>imageData + image>widthStep*(y))))[x * image>nChannels + channel] = (uchar)value;
, wo der Wert der pBuffer Information ist, x und y die Pixel coordinates.However ich kann das einfach nicht an die Arbeit. Irgendwelche Ideen?? Ich arbeite mit C++.
die Daten in pBuffer BYTE ist jedoch ich es als ein int –
BYTE Zugriff ist ein typedef für unsigned char, so können Sie es sicher in char umwandeln. Also der Code wird es: ipl_image_p-> imageData = (char *) pBuffer; –
dude es funktioniert ... aber das Bild in IplImage erstellt ist auf den Kopf gestellt ... keine Ahnung warum? –