2010-11-23 5 views
0

J'ai une image JPG dans le tampon et je voudrais essayer de le montrer avec cvShowImage. Cela ne fonctionne pas, cependant:OpenCV comment mettre image tampon jpeg à cvShowImage

// buff is a JPEG image with 640*480 dimensions 

IplImage* fIplImageHeader; 
fIplImageHeader = cvCreateImageHeader(cvSize(640, 480), 8, 1); 
fIplImageHeader->imageData = (char *)buff; 

cvShowImage("Window 1", fIplImageHeader); 
cvWaitKey(); 

cvReleaseImageHeader(&fIplImageHeader); 

Je reçois une fenêtre noire avec cela.

Répondre

1

On dirait que vous avez oublié de mettre widthStep

|-- int widthStep;  // size of aligned image row in bytes 
    |-- int imageSize;  // image data size in bytes = height*widthStep 
+0

aussi pourrait être le pointeur est vide ... essayez de copier les données comme ce gars a fait ... http://umanga.wordpress.com/ 2010/04/19/how-to-covert-qt-qimage-en-opencv-iplimage-and-wise-versa/ – CrazyDart

+0

vous devrez peut-être aussi changer cvCreateImageHeader (cvSize (640, 480), 8, 1); à cvCreateImageHeader (cvSize (640, 480), IPL_DEPTH_8U, 1); – CrazyDart

+0

J'ai essayé de régler la largeur et la hauteur. Pas d'aide. J'ai toujours une fenêtre noire ... juste avec une ligne blanche floue sur le dessus. Le pointeur n'est pas vide. J'ai vérifié que chaque image a environ 30KB. –

Questions connexes