作者Trumen (真好多人)
看板C_and_CPP
標題[問題] OpenGL顯示avi影片第一張frame全黑
時間Thu Feb 21 14:34:56 2013
小弟我目前使用Visual Studio 2010編寫一段程式
主要流程是
1. 用OpenCV提供的物件讀取*.avi
VideoCapture cap("test.avi");
2. 一樣利用OpenCV提供的物件將*.avi的每張frame獨自擷取出來
Mat testImage;
cap.retrieve(testImage);
3. 將testImage變成是OpenGL的texture
GLuint textureId;
glBindTexture(GL_TEXTURE_2D, textureId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, VIDEOWIDTH, VIDEOHEIGHT, 0,
GL_BGR, GL_UNSIGNED_BYTE, testImage.data);
4. 用OpenGL畫出此texture
奇怪的點在於
這樣畫的時候每次第一張frame都是全黑的
而之後的frame顯示都正常
我試過在畫完texture後加上一個3D model
則第一張frame的畫面會顯示黑背景 + 3D model
第二張之後顯示才正常 (影片背景 + 3D model)
不知道為什麼會有這種第一張frame顯示不出來的情況呢?
(opencv確實有抓出第一張frame,但opengl畫不出來)
懇請大大們不吝賜教,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.48.126
推 Bencrie:第一張存成圖片不是黑畫面? 02/21 16:25
→ Bencrie:OpenGL texture 如果沒建成功,讀出來的 pixel 應該是全白 02/21 16:26
→ Trumen:第一張存成圖片是彩圖 但是顯示卻是黑頻 第二張以後正常 02/22 13:50
→ Bencrie:那 ... 你可能要檢查 OpenGL 的 code,是不是沒指定 02/22 14:28
→ Bencrie:sampler 給 shader 之類的 02/22 14:28