J'ai donc déjà un programme qui capture l'image depuis une webcam, dans un vecteur appelé pBuffer. J'acess facilement les informations de pixels RVB de chaque pixel, par simpleDirectX et OpenCV
pBuffer[i]=R;pBuffer[i+1]=G;Buffer[i+2]=B.
Pas de problème ici.
La prochaine étape est maintenant de créer un IplImage * img, et de le remplir avec les informations du pBuffer ... une sorte de SetPixel.
Il y a une fonction SetPixel sur le web, qui est la suivante:
(((uchar*)(image>imageData + image>widthStep*(y))))[x * image>nChannels + channel] = (uchar)value;
où la valeur est l'information pBuffer, x et y travailler le pixel coordinates.However je ne peux tout simplement pas mettre cela. Des idées?? Je travaille avec C++.
les données pBuffer est BYTE mais je peux y accéder en tant que int –
BYTE est un typedef pour char non signé, donc vous pouvez le lancer en char en toute sécurité. Donc le code devient: ipl_image_p-> imageData = (char *) pBuffer; –
mec a travaillé ... mais l'image créée dans IplImage est à l'envers ... aucune idée pourquoi? –