[問題] OpenGL顯示avi影片第一張frame全黑

看板C_and_CPP (C/C++)作者 (真好多人)時間13年前 (2013/02/21 14:34), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
小弟我目前使用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

02/21 16:25, , 1F
第一張存成圖片不是黑畫面?
02/21 16:25, 1F

02/21 16:26, , 2F
OpenGL texture 如果沒建成功,讀出來的 pixel 應該是全白
02/21 16:26, 2F

02/22 13:50, , 3F
第一張存成圖片是彩圖 但是顯示卻是黑頻 第二張以後正常
02/22 13:50, 3F

02/22 14:28, , 4F
那 ... 你可能要檢查 OpenGL 的 code,是不是沒指定
02/22 14:28, 4F

02/22 14:28, , 5F
sampler 給 shader 之類的
02/22 14:28, 5F
文章代碼(AID): #1H9S0JLE (C_and_CPP)
文章代碼(AID): #1H9S0JLE (C_and_CPP)