Je capture des images en temps réel à l'aide d'OpenCV et je souhaite afficher ces images dans la fenêtre OGRE en arrière-plan. Ainsi, pour chaque image, l'arrière-plan change.loadRawData Problème de mémoire dans ogre lors du chargement des trames opencv
Je suis en train d'utiliser MemoryDataStream
avec loadRawData
pour charger les images dans une fenêtre de OGRE, mais je reçois l'erreur suivante:
OGRE EXCEPTION(2:InvalidParametersException): Stream size does not match calculated image size in Image::loadRawData at ../../../../../OgreMain/src/OgreImage.cpp (line 283)
Une image vient de OpenCV avec une taille de 640x480 et frame->buffer
est un type de Mat
dans OpenCV 2.3. En outre, le format de pixel que j'ai utilisé dans OpenCV est CV_8UC3
(c'est-à-dire que chaque pixel est de 8 bits et chaque pixel contient 3 canaux (B8G8R8)).
Ogre::MemoryDataStream* videoStream = new Ogre::MemoryDataStream((void*)frame->buffer.data, 640*480*3, true);
Ogre::DataStreamPtr ptr(videoStream,Ogre::SPFM_DELETE);
ptr->seek(0);
Ogre::Image* image = new Ogre::Image();
image->loadRawData(ptr,640, 480,Ogre::PF_B8G8R8);
texture->unload();
texture->loadImage(*image)
Pourquoi je reçois toujours cette erreur de mémoire?
J'ai essayé l'alignement de 4 octets mais rien n'a changé. Je reçois toujours un même problème de mémoire – barzos