看板 C_and_CPP 關於我們 聯絡資訊
小弟我目前使用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